linux用户和权限管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux用户和权限管理相关的知识,希望对你有一定的参考价值。
用户
用户的类别:
管理员:root
普通用户:
系统用户:仅用于运行服务程序;
登录用户:系统资源的正常使用者;
用户标识:UserID, UID
管理员:0
普通用户:
系统用户:
CentOS 5, 6: 1-499
CentOS 7: 1-999
普通用户:
CentOS 5,6: 500+
CentOS 7: 1000+
名称解析: username <--> UID
解析库:/etc/passwd:用户名、UID及其它属性信息解析库;
useradd命令:添加用户
useradd [选项] 登录名
-c, --comment COMMENT:注释信息,一般为Full Name;
-d, --home /PATH/TO/HOME_DIR:家目录路径;目标路径不能事先存在,否则会有警告,不会得利skel相关的文件给用户;
-g, --gid GROUP:用户的基本组组名或GID;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用户所属的附加组列表,彼此间用逗号隔开,中间没有空格;
-m, --create-home:强制创建家目录;
-M:不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes;
-r, --system:创建一个系统账户
-s, --shell SHELL:用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录shell;
-u, --uid UID:用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于UID_MIN,且大于任何其他用户 ID 最小值。
注意:创建登录用户时,为其自定义的shell程序必须为可登录shell,且要位于/etc/shells文件中;
useradd -D:显示创建用户时的默认设置;
useradd -D 选项:设置某默认选项;
-e, --expiredate EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定
-f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。
为用户提供默认配置的配置文件:
/etc/login.defs, /etc/default/useradd
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:解锁用户的密码。这将移除加密的密码之前的“!”
userdel命令:删除用户账号
userdel [选项] 登录名
-r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除
用户组
用户组的类别:
管理员组:
普通用户组:
系统组
登录组
组标识:GroupID, GroupID
管理员组:0
普通用户组:
系统组:
CentOS 5,6: 1-499
CentOS 7: 1-999
登录组:
CentOS 5,6: 500+
CentOS 7: 1000+
名称解析:groupname <--> gid
解析库:/etc/group
组类别:以用户为核心
用户的主组:基本组;
用户的附加组:额外组;
组类别:根据组内容纳的用户来划分
私有组:与用户名相同,且只有一个此用户;
公共组:组内包含了多个用户;
groupadd命令:添加组
groupadd [选项] group
-g GID:指明GID;
-r, --system:系统组;
groupmod命令:修改组信息
groupmod [选项] GROUP
-g GID
-n NEW_NAME:修改组名;
groupdel命令:删除组
groupdel [选项] GROUP
认证
认证机制:验正用户的确是他所声称的人;
通过对比事先存储的,与登录时所提供的信息是否一致;
存储于何处:
用户的认证信息库:/etc/shadow
组的认证信息库:/etc/gshadow
影子口令文件:/etc/shadow
密码:加密存放,使用单向加密机制;
单向加密:仅能加密,不能解密;提取数据特征码;
算法:
1:md5: message digest, 128bits
2:sha1: secure hash algorithm, 160bits
3:sha224
4:sha256
5:sha384
6:sha512
添加salt:取随机数;
随机数:
熵池:
/dev/random:仅从熵池返回随机数,随机数耗尽时会阻塞进程;
伪随机数:软件模拟产生;
/dev/urandom:先从熵池返回随机数,熵池耗尽时,则从伪随机数生成器返回随机数;
passwd命令:密码管理命令
passwd [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username]
(1) passwd:修改自己的密码;
(2) passwd username:修改其它用户的密码,仅root有此权限;
密码复杂度:
(1) 不能少于8个字符;
(2) 不能使用与过去的密码太相似的密码;
(3) 应该使用四类字符中的至少三类;
-l:锁定密码
-u:解锁解密
-d:清除密码
--stdin:从标准输入接收密码;
echo "PASSWORD" | passwd --stdin
gpasswd命令:为组添加密码
组密码文件:/etc/gshadow
gpasswd [选项] group
-a USERNAME:把用户添加至组中;
-d USERNAME:从此组中移除此用户;
id命令:查看用户相关的id信息;
id [OPTION]... [USER]
-u:仅查看uid
-g:仅查看gid
-G:查看所属的所有组的ID;
-n:显示名称,而非ID;
su命令:switch user
切换用户时:
(1) 不读取目标用户的配置文件(非登录式切换,半切换);
su USERNAME
(2) 读取目标用户的配置文件(登录式切换,完全切换);
su -l USERNAME
su - USERNAME
-c command, --command=command:仅以指定的用户的身份运行此处指定的命令,而不执行真正的身份切换操作;
注意:root切换至任何其它用户无须认证密码;普通用户切换至其它用户,都需要密码;
权限管理:
文件:
r:可获取文件的数据;
w:可修改文件的数据;
x:可将此文件运行为进程;
目录:
r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中;
w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件;
x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;
rwxrwxrwx:
owner: rwx
group: rwx
other: rwx
权限组合机制:
以owner为例:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
ownership: 仅管理员有权限
改属主:chown
改属组:chgrp
mode(permission):仅属主
chmod命令:
作用:change file mode bits
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
MODE:
赋权表示法:直接操作一类用户的所有权限位rwx;
u=
g=
o=
a=
两类用户权限相同:ug=, go=
不同类的用户权限不同:u=,g=,o=
授权表示法:操作一类用户一位或多位权限;
u+, u-
g+, g-
o+, o-
a+, a-
两类用户权限收授机制相同:ug+, ug-, ...
不同类的用户权限不同:u+,g+,o+
常用选项:
-R, --recursive:递归修改;
chown命令:
作用:改变属主
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
常用选项:
-R, --recursive:递归修改;
chgrp命令:
作用:改变属组
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
umask:显示或设定文件模式掩码
文件:
666-umask
目录:
777-umask
注意:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,则需要加1;
显示:umask
设定:umask MASK
注意:此设定仅对当前shell进程有效;
本文出自 “liberalism” 博客,请务必保留此出处http://edonkey.blog.51cto.com/887243/1750570
以上是关于linux用户和权限管理的主要内容,如果未能解决你的问题,请参考以下文章
[Linux 004]——用户和用户组以及 Linux 权限管理