您的位置:首页 > 运维架构 > Linux

Linux 用户及权限管理

2016-03-12 20:58 393 查看
一・什么是用户

用户:是能够获取系统资源的权限的集合
Linux做为一个多任务,多进程的操作系统,必然会出现多个用户同时登陆的情况,做为运维人员 来说,用户管理是日常重要的工作内容之一。Linux中用户按照其性质划分可以分为以下几种:

超级用户(root),拥有至高无上的权利,具有使用系统所有权限的能力;

系统用户,为了保障系统运行的用户,一般不提供密码登录系统;

普通用户,即一般用户,其使用系统权限通常受很大限制:

UID:系统识别用户的ID标识;

超级用户(root)的UID为0,

系统用户的UID为1-499(Centos5,6),1-999(Centos7);

普通用户的UID为500-65535(Centos5,6),1000-65535(Centos7);

查看用户UID的命令:id username



二・用户管理

1)与用户管理相关的配置文件
/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
此配置文件格式以:为分隔符,以root用户为例:
第一字段:“root” 代表该用户的名称,用来对应UID
第二字段:“ x " 代表该用户的密码,指向/etc/shadow文件中

第三字段:“ 0” 代表用户UID
第四字段:“ 0” 代表用户GID
第五字段:“root” 代表用户信息说明列
第六字段:“/root" 代表用户主文件夹
第七字段:“/bin/bsah"代表用户默认Shell

/etc/shadow
root:$6$qU5xMWeOTrQLuEPhQqf2S3ge1RroLMbE6.D5RAm23rKQ/:16868:0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::
此配置文件格式以:为分隔符,以root用户为例:
第一字段:“root” 代表用户名称
第二字段:“$6$q..” 代表密码
第三字段:“16868” 代表最近一次修改密码的日期(`date +%s/86400+1`)
第四字段:“0” 代表密码最短使用天数(不可变更时间,0表示随时可以改动)
第五字段:“99999” 代表密码最长使用天数,99999表示永不过期
第六字段:“7” 代表密码需要更改前的警告天数
第七字段:“:” 代表密码过期后的宽限时间
第八字段:“:” 代表账号失效日期
第九字段:“:” 保留

三・用户管理相关命令
1)useradd : 增加用户
useradd [选项] 用户名
-d, --home directory:家目录路径;目标路径不能事先存在,指定一个目录为该用户的家目录;
-g, --gid GROUP:指定用户的基本组组名或GID;
-G, --groups GROUP1(当然这里可以有多个组,[组1,组2...]):用户所属的附加组列表,彼此间用逗号隔 开中间没有空格;
-m, --create-home:强制创建家目录;
-M:不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes;
-r, --system:创建一个系统账户
2)usermod: 修改用户信息
-c, --comment COMMENT
-d, --home HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的 文件会移动到新目录中;
-g, --gid GROUP
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表 示为用户添加新的附加组;
-l, --login NEW_LOGIN:修改当前用户的用户名;
-s, --shell SHELL
-u, --uid UID
-L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”
-U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!”
3)userdel:删除用户
userdel [选项] 登录名
-r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除
4)passwd:密码管理命令
-l:锁定密码
-u:解锁解密
-d:清除密码

--stdin:从标准输入接收密码;
echo "PASSWORD" | passwd --stdin USERNAME

5)id:查看用户UID
-u:仅查看uid
-g:仅查看gid
-G:查看所属的所有组的ID
-n:显示名称,而非ID

6)su:切换用户命令
su -l USERNAME 读取目标用户的配置文件(登录式切换,完全切换);

四・组账户
1)与组用户管理相关的配置文件
/etc/group
root:x:0:
bin:x:1:
daemon:x:2:
2)组用户管理命令
groupadd:添加组
groupadd [选项] grouname
-g GID:指明GID;
-r, --system:系统组;
gpasswd:增加,删除组成员
-a:增加组成员
gpasswd -a mike root 增加mike到root组中
-d:删除组成员
gpasswd -d mike root 将mike从root组中删除

groups:查看当前用户所属的组
groups username

五・权限管理 进程的安全上下文: 进程:运行一个程序文件而产生,通常由一个用户发起;进程则以发起者的身份运行;判断进程的发起者是否与文件属主相同,如果是,则以属主的身份来访问,从而应用属主权限;否则判断进程的发起者是否属于文件的属组,如果是,则应用属组权限;否则应用“其它”权限
例外场景:factl, suid, sgid, sticky
文件: r:可获取文件的数据; w:可修改文件的数据; x:可将此文件运行为进程;目录: r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录 中; w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件; x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;

首先我们了解一写特殊的字符 u=user g=group o=other a=(u+g+o)表示所有人 MODE: 赋权表示法:直接操作一类用户的所有权限位rwx; u= g= o= a=授权表示法:操作一类用户一位或多位权限(中间不使用逗号)
u+, u- g+, g- o+, o- a+, a-
###############################################
这样是不是更加的明白呢?
两类用户权限收授机制相同:ug+, ug-, ...不同类的用户权限不同:u+,g+,o+
****************敲一敲代码看看是否一样呢?**************************
当然我们还是有别的表示方法的 r=4 w=2 x=1
常用选项:
-R, --recursive:递归修改;(小心使用哦)
chown命令:    chown [OPTION]... [OWNER][:[GROUP]] FILE...    chown [OPTION]... --reference=RFILE  FILE...
看看上面发生什么,文件已经不是www的了
常用选项:
-R, --recursive:递归修改;********************这一个就不演示了**************************chgrp命令: chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE...刚才我们把文件拥有者改了,那么组能不能改呢?
这完全可以说是自己创建的文件吗?哈哈 你看明白了吗umask:显示或设定文件模式掩码文件:666-umask
目录:777-umask
注意:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,则需要加1;那我们在终端中看的更加仔细点吧
显示:umask管理员和普通用户的UMASK还是不一样的管理员:
 普通用户umask MASK
注意:此设定仅对当前shell进程有效;

本文出自 “冷月葬玉魂” 博客,请务必保留此出处http://mxlmgl.blog.51cto.com/9834691/1750344
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: