Linux学习:第五章-Linux用户和用户组管理

时间:2021-01-27 15:19:34
一  用户管理命令

用户信息文件:   /etc/passwd

            aa:x:501:501::/home/aa:/bin/bash

            第一列:用户名

            第二列:密码标志

            第三列:UID      用户ID     

                    0   管理员

                    1-499   系统用户(伪用户)

                    500     普通用户

            第四列:GID      初始组ID

            第五列:用户说明

            第六列:家目录

            第七列:用户登录之后的权限

 

        影子文件:   /etc/shadow         400     000

 

        组信息文件:     /etc/group

 

            sc:x:500:

            组名:组密码位:组ID:组中附加用户


1   添加用户

            useradd  用户名     

 

            useradd  选项  用户名

            选项:

                -g  组名 指定初始组   不要手工指定

                -G  组名 指定附加组,把用户加入组,使用附加组

                -c  说明 添加说明

                -d  目录 手工指定家目录,目录不需要事先建立

                -s  /bin/bash   手工指定用户登录之后的权限   

 

 

            useradd  -g  aa  bb      添加bb用户,同时指定初始组为aa

            useradd  -G  user1  aa   添加用户aa,指定附加组为user1

            useradd -G aa -c "test cc"  -d /cc  -s /bin/bash   cc

 

 

            初始组:每个用户初始组只能有一个,初始组只能有一个,一般都是和用户名相同的组作为初始组

            附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组

 

        2   设定密码        

            passwd    用户名

            passwd          改变当前用户密码

            passwd  root     改变root密码

 

        3   删除用户            

            userdel  -r  用户名

                -r  连带家目录一起删除

 

        4   添加组             

            groupadd  组名

 

        5   删除组             

            groupdel  组名       注意:组中没有初始用户。

 

        6   把已经存在的用户加入组                   

   

            gpasswd  -a  用户名  组名     用户加入组

            gpasswd  -d  用户名  组名     把用户从组中删除


三  用户相关命令            

        1   id  用户名       显示用户的UID,初始组,和附加组

            [root@localhost home]# id sc

            uid=500(sc) gid=500(sc) groups=500(sc),0(root)

 

        2   su  -  用户名        切换用户身份        

                -   连带环境变量一起切换    

 


四  ACL权限            

 

    举例:  /www

            sc-àroot

            61-àfgroup

            o

            770    

[root@localhost ~]# mkdir /www

[root@localhost ~]# chmod 770 /www/

[root@localhost ~]# groupadd fgroup

[root@localhost ~]# gpasswd -a sc fgroup

正在将用户“sc”加入到“fgroup”组中

[root@localhost ~]# gpasswd -a aa fgroup

正在将用户aa加入到fgroup组中

[root@localhost ~]# chown root:fgroup  /www

[root@localhost ~]# ll -d  /www/

drwxrwx--- 2 root fgroup 4096 04-25 14:56 /www/

   

 

        1   getfacl  文件名      查询文件的acl权限

 

        2   setfacl  文件名或目录名      分配acl权限

 

            setfacl  -m  u:用户名:权限  文件名或目录名         #给文件分配用户acl权限

            setfacl  -m  g:组名:权限 文件名              #给文件分配组acl权限

 

        3   如果是acl权限是针对目录

           

            setfacl  -m  u:用户名:权限  -R  目录名

                    -R  递归         给当前目录和目录中已经存在的子文件分配acl权限

 

            setfacl  -m  d:u:用户名:权限  -R  目录名

                    d   默认         给目录设定默认权限,如果目录中新建子文件或子目录,都会从模板继承acl权限

 

 

 

            注意:如果给目录赋予acl权限,两条命令都要输入

           

        总结:

            setfacl  -m  u:用户名:rx  -R  目录名      对当前目录,和目录中已经建立的文件分配ACL权限

            setfacl m  d:u:用户名:rx  -R  目录名     对目录中新建立的子文件或子目录拥有acl权限


  输出重定向和多命令顺序执行

1   输出重定向

                把应该输出到屏幕的输出,重定向到文件。

 

                >   覆盖

                >>  追加

 

            ls  >  aa        覆盖到aa

            ls  >>  aa       追加到aa

 

            ls  gdlslga  2>>aa       错误信息输出到aa     强调:错误输出,不能有空格

                        2   错误信息

 

 

            掌握

            ls  >>  aa  2>&1     错误和正确都输入到aa,可以追加

                            2>&1    把标准错误重定向到标准正确输出

 

            ls  >>  aa  2>>/tmp/bb       正确信息输入aa,错误信息输入bb