用户组和权限管理

一、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

(0)
上一篇 2016-08-04 21:40
下一篇 2016-08-04 22:14

相关推荐

  • 在CentOS 7上实现私有CA及申请和吊销证书

    – 创建私有CA openssl的配置文件:/etc/pki/tls/openssl.cnf 42 dir     = /etc/pki/CA       # Where everythi…

    Linux干货 2016-12-01
  • 马哥教育网络班20期+第2周课程练习

    马哥教育网络班20期+第2周课程练习 练习题: 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。3、请使用命令行展开功能来完成以下练习:   (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d  …

    Linux干货 2016-06-23
  • 11. vim备查の小手札

    三种模式 命令模式(默认)      command mode:移动光标,剪切/粘贴文本 插入(编辑)模式         edit mode:修改文本 扩展命令模式 extend…

    Linux干货 2016-08-18
  • Linux任务计划,周期性任务执行详解

    Linux任务计划,周期性任务执行 概述 本章将为大家介绍一些任务计划和周期性任务计划执行相关内容任务计划的分类主要有由两种    未来的某时间点执行一次某任务:at,batch    周期性运行某任务:crontab具体分为三个方面来说明:    1、at计划任务    2、c…

    Linux干货 2016-09-27
  • 权限管理

    权限管理 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。 我们先来看看文件的属性: 权限: r:可获取文件数据(读取文件) w:可修改文件的数据(写入数据) x:可以把此文件提请内核启动为一个进程 (执行) 文件的权限主要针对三类对象进行定义:  owner: 属主, u  grou…

    Linux干货 2016-08-05