Linux的用户与权限管理
一、Linux的用户管理
Linux用户简单的分为:
(一)管理员:root
(二)普通用户又分为两种:
系统用户:仅用于运行服务程序;
登录用户:系统资源的正常使用者;
可以查看/etc/passwd来查看。如下图所示:
用户标识:UserID, UID ,共65535个;
管理员(root):0
系统用户:
CentOS 5, 6: 1-499
CentOS 7: 1-999
普通用户:
CentOS 5,6: 500+
CentOS 7: 1000+
常用命令:useradd,usermod,userdel.
(一)useradd
功能说明:建立用户帐号。
参 数:
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的启始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s<shell> 指定用户登入后所使用的shell。
-u<uid> 指定用户ID。
#创建用户Tom,uid为 5000,默认shell为/bin/tcsh,基于注释信息为"Hello",如图所示:
(二)usermod
功能说明:修改用户帐号。
参 数:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。
(三)userdel
功能说明:删除用户帐号。
参 数:
userdel -r[用户帐号]
-f 删除用户登入目录以及目录中所有文件。
如图,删除用户Tom:
passwd命令详情:
功能说明:设置密码。
补充说明:passwd指令让用户可以更改自己的密码,而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
(1) passwd:修改自己的密码;
(2) passwd username:修改其它用户的密码,仅root有此权限;
参 数:
-d 删除密码。本参数仅有系统管理者才能使用。
-f 强制执行。
-k 设置只有在密码过期失效后,方能更新。
-l 锁住密码。
-s 列出密码的相关信息。本参数仅有系统管理者才能使用。
-u 解开已上锁的帐号。
--stdin:从标准输入接收密码;
echo "PASSWORD" | passwd --stdin USERNAME
如下图:
su(super user)
功能说明:变更用户身份。
切换用户时:
(1) 不读取目标用户的配置文件(非登录式切换,半切换);
su USERNAME
(2) 读取目标用户的配置文件(登录式切换,完全切换);
su -l USERNAME
su - USERNAME
注意:root切换至任何其它用户无须认证密码;普通用户切换至其它用户,都需要密码;
如下图:
组的管理:
主要以命令进行:
组:groupadd, groupmod, groupdel
用户:useradd, usermod, userdel
组解析库文件:/etc/group
GRPNAME:x:GID:user1, user2, ...
组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔
groupadd命令:添加组
groupadd [选项] group
-g GID:指明GID;
-r, --system:系统组;
roupmod命令:修改组信息
groupmod [选项] GROUP
-g GID
-n NEW_NAME:修改组名;
groupdel命令:删除组
groupdel [选项] GROUP
gpasswd命令:为组添加密码
组密码文件:/etc/gshadow
gpasswd [选项] group
-a USERNAME:把用户添加至组中;
-d USERNAME:从此组中移除此用户;
二、Linux文件和目录的权限管理
利用 ll -a 命令 查看文件和目录 的权限
这是目录的 权限!第一行标有d 的为 目录文件。
这是文件的 权限!而且他还是是 普通文件!
文件系统文件权限:
rwxrwxrwx:
owner: rwx
group: rwx
other: rwx
三类用户:
属主:owner, u
属组:group, g
其它:other, o
权限:
r: readable,可读
w: writable, 可写
x:excutable, 可执行
权限管理:
文件:
r:可获取文件的数据;
w:可修改文件的数据;
x:可将此文件运行为进程;
目录:
r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中;
w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件;
x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;
权限组合机制:
以owner为例:
--- 0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx 1117
默认目录的 权限 为 755,默认文件的 权限 为 644 。
默认目录和文件的权限 和 umask 有关 。
umask:显示或设定文件模式掩码
文件:
666-umask
目录:
777-umask
注意:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,则需要加1;
显示:umask
设定:
umask MASK
注意:此设定仅对当前shell进程有效;
Linux文件和目录的权限管理常用命令:chmod ,chown ,chgrp
chmod(change mode)
功能说明:变更文件或目录的权限。
补充说明:在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的权限全部设成和参考文件或目录的权限相同
赋权表示法:直接操作一类用户的所有权限位rwx;
u=
g=
o=
a=
两类用户权限相同:ug=, go=
不同类的用户权限不同:u=,g=,o=
授权表示法:操作一类用户一位或多位权限;
u+, u-
g+, g-
o+, o-
a+, a-
两类用户权限收授机制相同:ug+, ug-, ...
不同类的用户权限不同:u+,g+,o+
chown(change owner)
功能说明:变更文件或目录的拥有者或所属群组。
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quite或--silent 不显示错误信息。
-h或--no-dereference 之对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--version 显示指令执行过程。
--dereference 效果和"-h"参数相同。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目 录的拥有者与所属群组相同。
chgrp(change group)
功能说明:变更文件或目录的所属群组。
语 法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]
参 数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
--reference=<参考文件或目录>