用户组和权限管理

一、3A认证

    Authentication:认证

    Autherization:授权

    Accoutiong|Audition:审计

二、用户user 

    linux用户:username/UID

    管理员:root,uid为0

    普通用户:1-65535

        系统用户:1-499(CentOS6),1-999(CentOS7)

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

        登录用户:500+(CentOS6),1000+(CentOS7)

            交互式鞥路

    touch /etc/nologin,除了root用户都不让登录

三、组group

    linux组:groupname/GID

    管理员组:root,gid为0

         系统组:1-499(CentOS6),1-999(CentOS7)

         普通组:500+(CentOS6),1000+(CentOS7)

    存放在:/etc/login.defs

    安全上下文:(security context)

        运行中的程序:进程(process)

        以进程发起者的身份运行,进程所能够访问资源取决于进程的运行者的身份。

    组的类别:

        用户的主要组:主组(primary group)

            用户必须属于一个且只有一个主组

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

        用户的附加组:辅助组(secondart group)

            一个用户可以属于零个或多个辅助组

    查看用户所在组信息:groups username     

[user1@localhost dir]$ groups user1
user1 : user1 wang

    查看用户uid,组的gid:id username     

[user1@localhost dir]$ id user1
uid=1003(user1) gid=1003(user1) groups=1003(user1),1005(wang)

四、用户和组的配置文件

    /etc/passwd:用户及其属性信息 

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

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

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

    

    passwd文件格式

        login name:登录用户

        passwd:密码(x)

        uid:用户身份编号

        gid:登录默认所在组编号

        gecos:用户全名或注释

        home directory:用户家目录

        shell:用户默认使用shell

[root@localhost testdir]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

    shadow文件格式

        登录用户名

        用户密码:一般用sha512加密

        从1970年1月1日其到密码最近一次被改变的时间

        密码再过几天可以被变更(0表示随时可被变更)

        密码再过几天必须被变更(99999表示永不过期)

        密码过期前几天系统提醒用户(默认为一周)

        密码过期几天后帐号会被锁定

        从1970年1月1日算起,多少天后帐号失效

[root@localhost testdir]# cat /etc/shadow
root:$6$2mjLumhZ$RDpz5SHbdHapxz4MyOX90KQG3pUVGYi5ZJcJMCgFIJCnz75n9YsHxb2xFGKaMel2NARB7VKlrJmZuW5F7Hsgp1:17008:0:99999:7:::

    group文件格式

        群组名称

        群组密码:通常不需要设定,密码是被记录在/etc/gshadow

        gid:就是群组的id

        以当前组为附加组的用户列表(分隔符为逗号)

[root@localhost testdir]# cat /etc/group
root:x:0:

    gshadow文件格式

        群组名称

        群组密码

        组管理员列表:组管理员的列表,更改组密码个成员

        以当前组的附加组的用户列表(分隔符为逗号)

[root@localhost testdir]# cat /etc/gshadow
root:::

五、密码加密

    加密机制

        加密:明文–>密文

        解密:密文–>明文

    单项加密:哈希算法,原文不通,密文必不通

    相同估算法定长输出,获得密文不可逆推出原始数据

    雪崩效应:初始条件的微小改变,引起结果的巨大改变。

        md5:128bits

        sha1:安全哈希算法(secure hash algoritm)160bits

        sha224:224bits

        sha256:256bits

        sha384:384bits

        sh512:512bits

    更改加密算法:authconfig –passalgo=md5 –update

    

    密码的复杂性策略

        使用数字,大写字母,小写字母及特殊字符中至少三种

        足够长

        使用随机密码

        定期更换,不要使用曾经使用过的密码

    

六、更改文件操作

    vipw和vigr 当安全格式不对,退出时会报错

    pwck和grpck 检查语法

七、用户管理命令

    用户管理命令

        useradd:创建用户

        usermod:修该用户信息

        userdel:删除用户

    组帐号管理命令

        groupadd:创建组

        groupmod:修改组信息

        groupdel:删除组

    

    用户创建useradd

        useradd option username

            -u:uid

            -o:配合-u选项,不检查uid的唯一性

            -g:gid,指明用户所属主组,可为组名

            -c:用户的注释信息

            -d:以指定的路径(不存在)为家目录

            -s 指明用户的默认shell 

            -G:为用户指明附加组,组必须事先存在

            -N:创建用户不创建主组,使用users组做主组

            -r:创建系统用户

[root@localhost testdir]# useradd -u 1000 -g test -c "iamwang" -d /home/wang -s /bin/bash wang
[root@localhost testdir]# getent passwd wang
wang:x:1000:1004:iamwang:/home/wang:/bin/bash

        默认值设定存放在:/etc/default/useradd

            显示或更改默认设置:useradd -D

[root@localhost testdir]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

        新建用户的相关文件

            /etc/default/useradd

            /etc/skel/*

            /etc/login.defs

        批量创建用户命令

            newusers userfile

            cat passwdfile | chpasswd

            

    用户属性修改

        usermod option username

            -u:uid

            -g:主组

            -G:附加组,原来的附加组将会被覆盖,若想保留原有附加组,要同事使用-a选项,表示附加。

            -s:shell

            -c:用户注释

            -d:家目录不会自动创建,原家目录中的文件不会同时移动到新的家目录,若创建家目录并移动原家数据,同时使用-m选项

            -l:新用户名

            -L:lock指定用户,在/etc/shadow密码栏增加!

            -U:unlick指明用户,将/etc/shadow密码栏的!去掉

            -e 年-月-日:指明用户口令过期时间

            -f:设定非活动期限

[root@localhost testdir]# usermod -u 1111 -g root -s /bin/csh -c "iamlaowang" -l laowang -d /testdir/wang -m wang
[root@localhost testdir]# getent passwd laowang
laowang:x:1111:0:iamlaowang:/testdir/wang:/bin/csh

    删除用户

        userdel option username

            -r:删除用户家目录

[root@localhost testdir]# userdel -r laowang

    查看用户相关的id信息

        id option username

            -u:uid

            -g:gid

            -G:组

            -n:名字

    用户相关的其他命令

        chfn:指定个人信息

        chsh:指定shell

        finger

八、切换用户或其他用户身份执行命令

    su option – username

    切换用户的方式:

        su username:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,保留当前用户的工作环境

        su – username:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换

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

    换个身份执行命令

    su – username -c ‘command’

九、设置密码

    passwd option username 修改指定用户的密码,仅root用户权限

    passwd 改变自己密码

        -l:锁定指定用户

        -u:解锁指定用户

        -e:强制用户下次登录修改密码

        -n mindays:最短使用期限

        -x maxdiys:最大使用期限

        -w warndats:提前多少天开始警告

        -i inactivedats:非活动期限

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

            ehco“passwd” | passwd –stdin username

十、修改用户密码策略

    chage option login

        -d:最后一天

        -E:–expiredate 有效期

        -I:– inactive 非活动期限

        -m:–mindays 最短使用期限

        -M:–maxdays 最大使用期限

        -W:–warndays 提钱多少天开始警告

        -l:显示密码策略

    下一次登录强制重设密码

        chage -d 0 username

        chage -m 0 -M 42 -W 14 -I 7 username

        chage -E 年-月-日 username

十一、组管理命令

    创建组

        groupadd option groupname

            -g:指定gid号

            -r:创建系统组

[root@localhost testdir]# groupadd -g 1234 wang
[root@localhost testdir]# getent group wang
wang:x:1234:

    组属性修改

        groupmod option groupname

            -g:gid号

            -n:新名字

[root@localhost testdir]# groupmod -g 4321 -n laowang wang
[root@localhost testdir]# getent laowang
Unknown database: laowang

    组删除

        groupdel groupname

[root@localhost testdir]# groupdel laowang

十二、更改组密码,添加和移除组成员

    gpasswd option username groupname

        -a username:将用户添加至指定组中

        -d username:从指定组中移除用户user

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

groupadd laowang
[root@localhost testdir]# useradd xiaowang
[root@localhost testdir]# gpasswd -a xiaowang laowang
Adding user xiaowang to group laowang
[root@localhost testdir]# getent group laowang
laowang:x:1006:xiaowang
[root@localhost testdir]# gpasswd -d xiaowang laowang
Removing user xiaowang from group laowang
[root@localhost testdir]# getent group laowang
laowang:x:1006:

    newgrp:临时切换基本组

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

十三、更改和查看组成员

    groupmems option action

         option

            -g:–group groupname 更改为指定组(只有root)

        action

            -a:–add username 指定用户加入组

            -d:–delete username 从组中删除用户

            -p:–purge 从组中清除所有成员

            -l:–list 显示组成员列表

    查看用户所属组列表:groups option username

十四、文件权限

    修改文件的属性

        chown option owner:group file

[root@localhost testdir]# touch file1
[root@localhost testdir]# ll file1
-rw-r--r-- 1 root root 0 Aug  4 03:30 file1
[root@localhost testdir]# chown 1:wang file1
[root@localhost testdir]# ll file1
-rw-r--r-- 1 1 wang 0 Aug  4 03:30 file1

        chown option –reference=rfile file  参考rfile,把file属主改成与rfile一样

[root@localhost testdir]# touch file2
[root@localhost testdir]# ll file2
-rw-r--r-- 1 root root 0 Aug  4 03:32 file2
[root@localhost testdir]# chown --reference=file1 file2
[root@localhost testdir]# ll file2
-rw-r--r-- 1 1 wang 0 Aug  4 03:32 file2

        命令中的冒号可用.代替

            -R:递归

    

    修改文件属组

        chgrp potion group file

[root@localhost testdir]# touch file1
[root@localhost testdir]# ll
total 0
-rw-r--r-- 1 root root 0 Aug  4 03:33 file1
[root@localhost testdir]# chgrp wang file1
[root@localhost testdir]# ll
total 0
-rw-r--r-- 1 root wang 0 Aug  4 03:33 file1

        chgrp option –reference=rfile file  参考rfile,把file属组改成与rfile一样

[root@localhost testdir]# touch file2
[root@localhost testdir]# ll file2
-rw-r--r-- 1 root root 0 Aug  4 03:35 file2
[root@localhost testdir]# chgrp --reference=file1 file2
[root@localhost testdir]# ll
total 0
-rw-r--r-- 1 root wang 0 Aug  4 03:33 file1
-rw-r--r-- 1 root wang 0 Aug  4 03:35 file2

            -R:递归

    

      owner 修改所有者

      owner:group修改所有者和所属组

      :group 修改所属组

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

        owner:属主,用u来表示

        group:属组,用g来表示

        other:其他,用o来表示

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

        r:Readable

        w:Writable

        x:eXcutable

    三种权限对文件和目录的意义

        文件

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

            w:可修改内容,但不能删除文件本身

            x:针对二进制程序或脚本,可以把次文件提请内核启动为一个进程

            X:本身没有x权限,将不会增加

        目录

            r:可以查看文件列表,但不能访问文件,不能进入目录,也不能查看文件的元数据

            w:可以创建或删除目录中文件,

            x:可以进入目录,可以访问目录中文件

            X:与x等价

十五、修改文件权限

    chmod option catalmode file  八进制数值修改权限

[root@localhost testdir]# ll
total 0
-rw-r--r-- 1 root wang 0 Aug  4 03:33 file1
-rw-r--r-- 1 root wang 0 Aug  4 03:35 file2
[root@localhost testdir]# chmod 777 file1
[root@localhost testdir]# ll
total 0
-rwxrwxrwx 1 root wang 0 Aug  4 03:33 file1
-rw-r--r-- 1 root wang 0 Aug  4 03:35 file2

    chmod option mode file  mode修改权限

[root@localhost testdir]# chmod ug+x file2
[root@localhost testdir]# ll
total 0
-rwxrwxrwx 1 root wang 0 Aug  4 03:33 file1
-rwxr-xr-- 1 root wang 0 Aug  4 03:35 file2

        mode:

            修改一类用户的所有权限

            u=主,g=组,o=其他,a=所有

            修改用户的所有权限

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

        -R:递归

    chmod option –reference=rfile file  参考rfile文件的权限,将file的权限修改为同file的权限

[root@localhost testdir]# ll
total 0
-rwxrwxrwx 1 root wang 0 Aug  4 03:33 file1
-rwxr-xr-- 1 root wang 0 Aug  4 03:35 file2
[root@localhost testdir]# chmod --reference=file1 file2
[root@localhost testdir]# ll
total 0
-rwxrwxrwx 1 root wang 0 Aug  4 03:33 file1
-rwxrwxrwx 1 root wang 0 Aug  4 03:35 file2

十六、新建文件和目录的默认权限

    umask从目录或文件上屏蔽掉最大相应的位,从而得出默认权限

    umask值,可以用来保留在创建文件权限

    新建文件权限:666-umask

        如果所得结果某位存在奇数权限,则将其权限+1

    新建目录权限:777-umask

    非特权权限用户umask是002

    root的umask是022

        umask:查看

        umask 八进制数值:设定

        umask -S:以模式的方式显示

        umask -p:输出可被调用

    全局设置存放在/etc/bashrc

    用户设置存放在~/.bashrc

[root@localhost testdir]#  umask
0022
[root@localhost testdir]#  umask -S
u=rwx,g=rx,o=rx
[root@localhost testdir]# umask 111
[root@localhost testdir]#  umask
0111

原创文章,作者:DYW,如若转载,请注明出处:http://www.178linux.com/28903