Linux用户管理
一.用户管理概念
1.Linux系统用户管理特点
多用户平台(ALT+F1--6)
单用户模式中无需用户
管理方法有两种:命令、图形工具、
2.用户账号的分类
超级用户(UID=0):具有一切系统操作权限
普通用户(UID=500—MAXUID默认值60000):操作权限受到限制
伪用户(UID=1—499):限制本机登录(用于特定服务的启动用户)
注:-用户的UID的取值,除0以外,其它值不允许用户取相同的值
-Linux系统有很多内置用户账号,如:root,bin…
3.用户组的介绍
(1)什么是用户组
用户组是用户集合,通过用户可以减少用户管理的工作量
(2)用户组的分类
私用组:由创建用户时自动创建(一般只包含一个用户)
标准组:是用户手创建组,可以包含多个用户
4.用户管理的相关文件
(1)/etc/passwd
功能:存放系统的用户帐号信息
内容:用户名 密码 UID GID 描述 用户主目录 SHELL
实例: u1 : x : 0 : 0 : u1 : /home/u1 :/bin/bash
注:-如果采用了shadow,此处存放口令的为屏蔽字符,真正密码保存在/etc/shadow中,shadow可以利用md5加密
-修改/etc/sysconfig/authconfig文件可以配置用户口令采用影子口令和md5加密机制
(2)/etc/shadow(使用影子口令)
功能:存放用户口令(一般采用加密的方式存放口令)
实例: u1 : bq$# :10750: 0: 9999 :7: -1:21110 :12546
说明: u1 用户名
b1$# 加密的口令
10750 从1970.1.1开始计算,该口令修改后已过去了多少天
(密码最后一次修改的时间)
0 需要再过多少天这个口令可以被修改
9999 密码的有效期(-1代表永不过期)
7 口令失效多少天前发出警告
-1 口令失效多少天之后禁用账户(-1不禁用、0代表立即禁用)
21110 用户账号的有效日期(从1970/1/1开始计算)
12546 保留
(3)/etc/group
功能:存放系统组信息
格式:组名:组口令 :GID:成员列表
(4)/etc/gshadow
功能:存放用户组口令
格式:组名:口令:组管理员:成员列表
(5)用户环境文件目录——/etc/skel
skel目录类似与windows系统中的Default User目录,用于存放用户的环境文件等。当添加新用户时,系统会自动复制该目录到新用户的家目录下。
# ls –la /etc/skel/
total 64
drwxr-xr-x 3 root root 4096 Nov 1 21:04.
drwxr-xr-x 61 root root 8192 Feb 7 19:44 ..
-rw-r--r-- 1 root root 24 2003-09-18 .bash_logout
-rw-r--r-- 1 root root 191 2003-09-18 .bash_profile
-rw-r--r-- 1 root root 124 2003-09-18 .bashrc
-rw-r--r-- 1 root root 237 2003-05-22 .emacs
-rw-r--r-- 1 root root 120 2003-08-20 .gtkrc
drwxr-xr-x 3 root root 4096 1月 1 21:01 .kde
(6)用户规则文件——/etc/default/useradd
/etc/default/useradd文件用于定义添加新用户的一些规则信息。下面为该文件的默认内容。
# cat /etc/default/useradd
# useradd defaults file
GROUP=100 //默认组ID是100,在禁止默认的私有组时有用。
HOME=/home //默认创建新用户时,用户家目录所在的位置。
INACTIVE=-1 //密码过期后,帐号是否处于激活状态,-1表示永远激活。
EXPIRE= //用户帐号过期日期,为空表示不启用。
SHELL=/bin/bash //默认创建新用户时,所用的SHELL类型。
SKEL=/etc/skel //默认创建新用户时,用户的环境文件等存放的位置。
(7)用户规则文件——/etc/login.defs
/etc/login.defs文件用于定义添加新用户的一些规则信息。下面为该文件的默认内容。
//查看login.defs文件中所有不是以“#”开头的行。
#grep -v"^#" /etc/login.defs
MAIL_DIR /var/spool/mail //用户mail文件所在的位置
PASS_MAX_DAYS 99999 //用户密码最多使用的天数
PASS_MIN_DAYS 0 //用户密码最少使用的天数
PASS_MIN_LEN 5 //用户密码最小的长度
PASS_WARN_AGE 7 //定义用户密码过期前多少天给予警告
UID_MIN 500 //默认创建新用户时最小的UID号
UID_MAX 60000 //默认创建新用户时最大的UID号
GID_MIN 500 //默认创建新用户时最小的GID号
GID_MAX 60000 //默认创建新用户时最大的GID号
CREATE_HOME yes //创建新用户时是否创建家目录
二.用户及组管理命令
1.useradd
功能:建立用户
格式:useradd [参数]用户名
参数: -u UID:指定用户的UID值(指定UID不能与其它用户UID相等)
-g 组名/GID:指定用户的所属组
-G 组名:指定用户附加组
-d 路径:指定用户主目录(/home/$USERNAME)
-e 时间:指定用户有效日期
-s SHELL:指定SHELL的类型(/bin/bash)
-m :建立用户主目录
-M :不建立用户主目录
-r :建立一个伪用户
-o:与-u连用,如果所指定的UID重复时,强制使用指定的UID
-p 口令:指定用户口令,默认新建用户为禁用状态
实例:# useradd u2
# useradd -g g2 u2
# useradd -e 03/28/04 –g g3 -d /etc/ u3
#useradd u3 -p$1asd#dfsdkfeodsfefsdf
2.userdel
功能:删除用户
格式:userdel [参数] 用户名
参数:-r : 删除用户主目录
实例:#userdel u2
#userdel -r u3
3.passwd
功能:修改用户口令
格式:passwd [参数] [用户名]
参数:-l:锁定用户
-u:解除用户的锁定
-d:删除用户的口令
实例:#passwd u2
#passwd -l u2
#passwd -d u2
4.usermod
功能:修改用户信息
格式:usermod [参数] 用户名
参数:-l 新的用户名:修改用户名称
-d 路径:修改用户主目录
-G 组名:修改附加组
-s 路径: 修改用户SHELL
-u UID: 修改用户UID
-g GID: 修改用户所属组的 GID
-o:强制使用指定的UID,与-u连用
实例:# usermod -d / u3
# usermod -G u2 u3
# usermod -l user3 u3
5.gropadd
功能:建立用户组
格式:groupadd [参数] 组名
参数:-g GID:指定GID的值
-r :建立伪用户组(1--499)
实例:# groupadd g2
# groupadd –r g3
6.groupdel
功能:删除用户组
格式:groupdel 组名
实例:groupdel G3
7.groupmod
功能:修改组信息
格式:groupmod [参数] 组名
参数:-n 新组名:修改组的名称
-g GID:修改组的GID
-o:强制使用指定的GID,与-g连用
实例:# groudmod -n group g1
# groupmod -g 860 group1
8.gpasswd
格式:gpasswd [参数] [用户名] [组名]
参数:-a 用户名: 向指定组添加用户
-d 用户名: 从指定组中删除用户
-A 用户名: 设置组的管理员
-r : 删除组的口令
实例:#gpasswd -a u1 root
#gpasswd -d u1 root
#gpasswd gp1
#gpasswd -A u1 gp1
9.groups
功能:显示组信息
格式:groups [用户名]
实例:#groups (显示当前用户所属组)
#groups root (显示root用户的所属组)
10.id
功能:查看UID/GID的相关信息
格式:#id [参数]
参数:-a 显示所有信息
-g 显示有效组的ID
-G 显示所有组的ID
-u 显示用户ID
-n 与-gGu连用,用于显示用户/组名称
实例:#id
#id -un
11.newgrp
功能:更改用户有效组
格式:#newgrp 组名
实例:#newgrp users
12.pwck
功能:检查/etc/passwd与/etc/shadow文件内容及用户主目录是否存在
实例:#pwck
13.chpasswd
功能:修改用户口令,用户名和口令由用户输入的执行过程中输入
格式:#chpasswd [参数]
参数:-e 不加密存储
实例:#chpasswd
u1:linux
u2:linux
# cat /etc/users>chpasswd
三.用户安全管理
1.文件访问权限操作
(1)文件的使用者
超级用户:不受文件访问权限的限制,可以所有文件
普通用户:受具体文件访问权限的限制,每个文件的访问权限由拥有者权限、拥有组权限及其他用户权限三部分组成
(2)文件设问权限的种类
普通权限
表示字符 |
权限名称 |
对文件的含义 |
对目录的含义 |
r(4) |
读 |
读取文件内容 |
检查目录内容 |
w(2) |
写 |
修改文件内容 |
改变目录内容 |
x(1) |
执行 |
执行文件 |
进入目录 |
注:以上权限组合可以用字母(如:r-x)和八进制数字(如:7=4+2+1)表示
特殊权限
表示字符 |
权限名称 |
含义 |
备注 |
s(4) |
Suid |
执行文件时使用文件拥有者的UID |
用于可执行文件 |
s(2) |
Sgid |
执行文件时使用文件拥有组的GID |
用于可执行文件 |
t(1) |
粘着位 |
使目录成为临时目录(可写,可删除自己拥有的文件) |
用于目录 |
(3)文件访问权限的相关操作
l chmod
功能:修改文件访问权限
格式:chmod [参数] <权限值> <文件名>
参数:
-v:显示详细说明
-c:与-v相似,但只有在文件权限发生改变时才显示详细说明
-R:递归改变目录的权限
实例:#chmod rwxr-xr-x file1
# chmod u+x file1
# chmod u-x,o+rw file2
#chmod u+s,g+s file2
#chmod 1755 dir1
注:-只有root和文件属主有权执行chmod文件
l chown
功能:改变文件拥有者及拥有级(只有超级用户使用)
格式:chown [参数] <用户名> <文件名>
参数:-R:递归改变目录的拥有者
-f:不显示拥有者的详细信息
实例:# chown user f1
# chown -R user1.g1 /d1
l umask
功能:设置权限掩码(决定新建文件的权限)
格式:umask 权限值(超级用户默认为022,普通用户默认为002)
实例:#umask 044
计算公式:目录:777-umask
文件:666-umask
l Chattr
功能: 修改ext2和ext3文件系统中的文件属性(只有超级用户使用)
格式:chattr [参数] 操作符 属性值 文件或目录
参数:
-R:递归处理所有的文件及子目录
-V:详细显示修改内容,并打印输出。
操作符:
-:失效属性
+:激活属性
= :指定属性
属性值
A:告诉系统不要修改对这个文件的最后访问时间
S:一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a:系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i:系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D:检查压缩文件中的错误。
d:在进行文件系统备份时,dump程序将忽略这个文件。
C:系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
:让系统在删除这个文件时,使用0填充文件所在的区域。
u:当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件
实例:#chattr +i file1
注:属性需要相应内核的支持,不能利用chattr保护/,/dev,/var,/tmp
l chgrp
功能:更改拥有组
格式:#chgrp [参数] 组名 文件名
参数:-R:更改目录所有内容的拥有组
实例:#chgrp group1 f1
l lsattr
功能:显示文件的属性
格式:lsattr [参数] [文件名]
参数:-R:查看目录所有内容的属性,包括子目录中的内容
实例:#lsattr /etc/f1
2.用户安全建议
(1)一般不使用root用户进行日常管理操作
(2)保持口令的安全,不要写SUID/SGID程序
(3)不要让自已的文件或目录可被他人写
(4)小心地拷贝和移动文件
(5)不使用的账号可以禁用或删除
(6)重要文件需要加密
(7)不用的端口就封掉、或采用跳机连接。
本文转自 sswqzx 51CTO博客,原文链接:http://blog.51cto.com/sswqzx/1971322