Linux之小基础-用户和权限管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之小基础-用户和权限管理相关的知识,希望对你有一定的参考价值。
一、何为Linux用户:
Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和用户口令。用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录。
二、用户的分类:
Unix/Linux系统中有两类用户超级用户(root)和一般用户。超级用户有着至高无上的权力,可做任何事情;一般用户只有在给定权限范围内进行工作,不得越权行事。
三、用户标识:
用户一般用 UserID,即 UID表示。UID用16bits的二进制数字表示,最大数值为65535;:用户名、UID及其它属性信息解析库存放在 /etc/passwd目录下
name:password:UID:GID:GECOS:directory:shell
用户组:用户组是指多个用户的集合。用户组的属性信息解析库存放在 /etc/group 目录下。
以下为各用户在系统中UID大小表示:
管理员:0
一般用户:分为系统用户和普通用户
系统用户:
CentOS 5, 6: 1-499
CentOS 7: 1-999
普通用户:
CentOS 5,6: 500+
CentOS 7: 1000+
四、用户和用户组的管理
用户:useradd, usermod, userdel
组:groupadd, groupmod, groupdel
认证:passwd
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 最小值。
useradd -D:显示创建用户时的默认设置;
useradd -D 选项:设置某默认选项;
-e, --expiredate EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定
-f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。
useradd -D:显示创建用户时的默认设置;
useradd -D 选项:设置某默认选项;
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:用户主目录中的文件将随用户主目录和用户邮箱一起删除
组管理命令
groupadd命令:添加组
groupadd [选项] group
-g GID:指明GID;
-r, --system:系统组;
groupmod命令:修改组信息
groupmod [选项] GROUP
-g GID
-n NEW_NAME:修改组名;
groupdel命令:删除组
groupdel [选项] GROUP
密码管理
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 USERNAME
切换用户:
su命令:switch user
切换用户时:
(1) 不读取目标用户的配置文件(非登录式切换,半切换);此时还在root用户的家目录下。
su USERNAME
(2) 读取目标用户的配置文件(登录式切换,完全切换);
su -l USERNAME
su - USERNAME
注意:root切换至任何其它用户无须认证密码;普通用户切换至其它用户,都需要密码;
gpasswd命令:为组添加密码
组密码文件:/etc/gshadow
gpasswd [选项] group
-a USERNAME:把用户添加至组中;
-d USERNAME:从此组中移除此用户;
newgrp命令:登录到一个新组
chage命令:修改用户账号的各种期限;
五、用户和组的权限管理
文件系统文件权限:
三类用户:
属主:owner, u
属组:group, g
其它:other, o
(其中a表示所有用户)
权限:
r: readable,可读
w: writable, 可写
x:excutable, 可执行
权限管理:
文件:
r:可获取文件的数据;
w:可修改文件的数据;
x:可将此文件运行为进程;
目录:
r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中;
w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件;
x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;
rwxrwxrwx:
owner: rwx
group: rwx
other: rwx
权限组合机制:
以owner为例:
系统 对应二进制 八进制
--- 0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx 1117
权限管理:
ownership: 仅管理员有权限
改属主:chown
改属组:chgrp
mode(permission):仅属主
chmod
chmod命令:
作用:change file mode bits
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
(1) chmod [OPTION]... MODE[,MODE]... FILE...
MODE:
1>赋权表示法:直接操作一类用户的所有权限位rwx;
u=rw 可读可写不可执行,不写为没有权限。
g=
o=
a=
两类用户权限相同:ug=, go=
不同类的用户权限不同:u=,g=,o=
2>授权表示法:操作一类用户一位或多位权限;
u+, u-
g+, g-
o+, o-
a+, a-
两类用户权限收授机制相同:ug+, ug-, ...
不同类的用户权限不同:u+,g+,o+
此外,也可以用八进制表示法修改权限,如:
]# chmod 700 fstab
]# ls -l fstab
]# -rwx------ 1 root root 923 Mar 14 13:20 fstab
此处需要注意77是077,而不是770。
(2) chmod [OPTION]... OCTAL-MODE FILE...
(3) chmod [OPTION]... --reference=RFILE FILE...
--reference=RFILE:RFILE表示参考其权限模型;
常用选项:
-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 即此时创建文件时,对应权限码为666-022=644 -rw-r--r--
目录:
777-umask 即此时创建目录文件时,对应权限码为777-022=755 -rwxr-xr-x
注意:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,则需要手动加1;
显示:
umask
设定:
umask MASK
注意:此设定仅对当前shell进程有效;
以上是关于Linux之小基础-用户和权限管理的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段