linux 用户及组的管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 用户及组的管理相关的知识,希望对你有一定的参考价值。

linux用户:有UID

    管理员:root  UID:0

    普通用户:UID:1-65535

            系统用户:1-499  centos7 1-999

                    守护进程获取资源进行权限分配

            登陆用户:500+     centos7  1000+

                     交互式登录:

linux组:GID

    管理员组:root GID:0

        系统组:1-499        centos7  1-999

        普通组:500+          centos7   1000+


linux安全上下文:

        运行中的程序:进程

                    以进程发起者的身份运行:

                            root:cat /etc/passwd

                            tom: cat /etc/passwd    权限不够

                    进程所能狗访问的所有资源的权限取决于进程的发起者的身份

                    

linux组的类别:

        用户的基本组(主组):

                组名同用户名,且包含一个用户:私有组

        用户的附加组(额外组)


linux用户 和组相关的配置文件:

        /etc/passwd :用户及其属性信息(名称,uid,基本组id等

        /etc/group:组及其属性信息

        /etc/shadow:用户密码及其相关属性

        /etc/gshadow:组密码及其相关属性

/etc/passwd:

        name:password:UID:GID:GECOS:director:shell   

        用户名:密码:UID:GID:用户的完整信息:用户家目录:默认shell      

/etc/group

        groupname:password:GID:user_list       

        组名:组密码:GID:以当前组为附加组的列表

/etc/shadow

        用户名:加密后的密码:最近一次更改密码的日期:密码的最小使用期限(密码:密码的最大使用期限:密码警告时间段:密码禁用期:账号过期日期:保留字段

    

        useradd 【option】 username      命令:id +用户名  来查询组id,用户id

                -u  uid:指定UID 【UIDMIN,UIDMAX】配置文件 /etc/login.defs

                -g  gid:指明用户所属基本组,可为组名,也可为GID

                -c“COMMENT":用户的信息(电话,住址等)

                -d:/path/to/home_dir :指定家目录,制定的家目录最好不要事先存在

    用户家目录中的基本信息来源:/etc/skel

                -s:指明用户默认shell   ,shell列表: /etc/shells  文件中

                -G:GROUP1[,GROUP2,...GROUPN] 

                -D:更改默认值   例如:useradd -D-s /bin/tcshell

                -r:创建系统用户

                        centos6:id<500

                        centos7:id<1000

        默认值设定:/etc/default/useradd

                    useradd -D

                            -s shell


组创建:groupadd

        groupadd 【option】..groupname

            

                -g GID:指明GID号:【gidmin,gidmax】

                -r:创建系统组:

                    centos6:id < 500

                    centos7:id < 1000

           查看用户相关的id:

                id 【option】...【user】

                            -u:UID

                            -g:GID

                            -G:基本组和附加组

                            -n:Name

               su 【option】【-】【user【args...】】

                     切换用户:

                        su  username:非登陆式切换:即不会读取目标用户的配置文件

                        su  - username:登陆式切换,会读取目标用户的配置文件,完全切换

                    

                        Note:root su至其他用户,无需密码,非root用户切换时需要密码

                     执行命令:su - username -c ’command‘ 切换其他用户执行命令

                                        

                            -l:su - l  username 相当于登陆式切换‘su - username’

                

                usermod:

                    usermod 【option】login

                        -u UID:新的UID

                        -g GID:新基本组

                        -G Group1【,group2,。。。groupn】username:新附加组,原来的附加组将会被删除;若需保留原有,则要同时使用-a,表示append

                        -s shell:新的默认shell

                        -c ’comment‘:新的注释信息

                        -d home:新的家目录,原有家目录中的文件不会移动至新家目录,若虚移动,使用 -m

选项   usermod -d home -m username

                        -l  login name:新的名字

                        -L:lock 指定用户

                        -U:解锁指定用户

                        -e YYYY-MM-DD:指明用户账号过期日期

                        -f  inactive:设定非活动期限


                      给用户添加密码;passwd

                            passwd 【option】username :修改指定用户密码,仅root用户可以

                            passwd:修改自己的密码

                                    选项:-l:锁定用户

                                               -u:解锁

                                               -n minday  多久不可修改密码

                                               -x  maxday:多久内必须要修改密码

                                               -w warndays:密码过期前的警告天数

                                               -i inactivedays:非活动期限设定

                                               --stdin:从标准输入接受用户密码 

                                                    echo “passwd”|passwd --stdin username

                                

                                    Note:/dev/null,bit buckets 黑洞

                                            /dev/zero,吐零

                                    

                            

             删除用户:userdel

                        userdel 【option】 username

                                -r:删除用户家目录

             组属性修改:groupmod

                        groupmod 【option】。。。group

                                    -n groupname:新名字

                                    -g GID:新的GID

              组删除:groupdel

                        groudel 组名

              组密码:gpasswd

                            gpasswd [option] group

                                        -a username 组名:将user添加至指定组中

                                        -d username 组名:删除用户user的以当前组为组名的附加组

                                        -A  user1,user2,。。。:设置有管理权限的用户列表

               其他命令:                         

                       newgrp 组名:临时切换基本组

                                    如果用户不属于此组,则需要组密码

                       chage:更改用户密码过期信息

                       chage 【option】..LOGIN

                                        -d:最近一次修改密码的时间

                                        -E:密码过期期限

                                        -I:非活动期限

                                        -m:密码最小使用期限

                                        -M:最大使用期限        

                                        -W:警告期限

            

                            其他命令:chfn username:(修改用户基本信息:电话,住宅)

                                                用finger查看

                                            chsh username:修改默认shell

                                            

权限管理:

        文件权限主要针对三类对象进行定义:

            owner:属主:u    

            group:属组:g

            other:其他,o

        每个文件针对每类访问者定义了三种权限:

            r:Readable

            w:Writeable

            x:excutable 

            

        文件:

               r:可使用文件查看类工具获取其内容

               w:可修改文件内容

               x:可以把此文件提请内核启动为一个进程

        目录:

               r:可以使用ls查看此目录中创建文件,也可删除此目录中的文件

               w:可在此目录中创建文件,也可删除此目录中的文件。若一个目录中的某个文件,用户对他没有w权限,而对该目录有w权限,则用户可以将该文件删除

               x:可以使用ls -l查看目录中文件列表,可以cd进入此目录

    

         --- :000   0      

         --x :001   1

         -w- :010   3                                  

         r-- :100   4                                     

         r-x :101   5         

         rw- :110   6

         rwx :111   7

chmod 【option】...octal-mode  file

            -R  :级联(递归)修改权限

chmod  【option】...mode【,mode】。。。file

            mode:

                        修改某一类用户权限

                        chmod  u=rwx filename

                        chmod  ug=rwx filename

                        chmod  u=rwx,g=-wx filename 

                        u=,g=,ug=,uo=,go=,a=

                        修改一类用户某位或某些权限

                        u+,u-,g+,g-,o+,o-

chmod [option] ... --reference -RFILE FILE

            参考RFILE文件的权限,将FILE的权限修改为RFILE

            chmod --reference=./c.txt  a.txt

修改文本属主属组:

    仅root可用:

        修改文件属主:chown 【option】 。。。【属主】:【属组】 file

                用法:

                        属主

                        属主:属组

                        :属组

                    注意:命令中的冒号可用.替换

                        -R:递归修改目录中的文件权限

                    chown   [option] ... --reference -RFILE FILE 

        修改文件的属组:chgrp 

                    chgrp 【option】。。。group file

                    chgrp  [option] ... --reference -RFILE FILE

                    -R :递归


以上是关于linux 用户及组的管理的主要内容,如果未能解决你的问题,请参考以下文章

linux用户及组相关命令

Linux系统下用户与组的管理

Linux系统下用户与组的管理

网络操作系统 第二章 用户和组管理

linux-用户及组管理

Linux用户组及权限管理