首页 > 代码库 > Linux用户和组管理
Linux用户和组管理
Linux的学习者都知道,Linux的每个文件都有相当多的属性与权限。其中最重要的就是文件所有者的概念。今天我就总结一下用户与组相关的一些命令。
1.用户的概念
系统中的每个进程(运行程序)都作为一个特定用户运行。每个文件归一个特定用户所有。对文件和目录的访问受到用户的限制。与运行进程相关联的用户可确定该进程可访问的文件和目录。
若要查看与进程相关联的用户,在ps命令中包含u选项。第一列显示用户名:
[root@serverX ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19244 1424 ? Ss 21:00 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 21:00 0:00 [kthreadd]
student 114 0.0 0.2 106008 1240 pts/0 S 21:00 0:00 /bin/sh
若要查看与某一文件或目录相关联的用户,则使用ls -l命令。第三列显示用户名:
[root@serverX ~]# ls -l /tmp
-rw-------. 1 root root 9412 Aug 3 22:49 sv1jc.tmp
-rw-------. 1 student student 24288 Jul 30 21:24 sv25e.tmp
2.Linux用户在数据库中定义。
默认情况下,系统使用简单的“平面文件”(即/etc/passwd文件)存储有关本地用户的信息。/etc/passwd采用以下格式(七个冒号分隔字段):
account:password:UID:GID:GECOS:directory:shell
用户属性:
account是UID到名称的一种映射,便于用户使用。
password以前是以加密格式保存密码的位置。现在密码存储在称为/etc/shadow的单独文件中。
UID是用户的ID,在最基本的级别标识用户的编号。
GID是主组ID,默认情况下,是与所有新建文件关联的号码,用于潜在的合并。
GECOS字段存储任意文本,通常是用户的实际姓名、办公电话或个人电话号码。
directory是用户的个人数据和配置文件的位置。
shell是在用户登录时,以及如果shell(例如/bin/bash)提供用户命令行提示时,执行的程序。
3.管理本地用户
3.1 useradd创建用户
useradd username可在无选项的情况下运行时,为/etc/passwd中的所有字段设置合理的默认值
useradd在默认情况下不设置任何有效密码,用户无法登录
useradd –help将显示可用于覆盖默认值的基础选项
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组
指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号
指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
3.2 userdel删除用户
userdel username从/etc/passwd中删除用户,但默认情况下,主目录保持不3变。
userdel -r username可删除用户和用户的主目录。
3.3 id显示用户信息
id 将显示用户的信息,包括其UID编号和组成员身份。
id username将显示username的用户信息,包括其UID编号和组成员身份。
3.4 passwd设置密码
passwd username可用与设置用户的初始密码,或更改该用户的密码。
3.5 UID范围
UID 0是root,且具有特殊权限
UID 1-499按约定是“系统用户”-一般是非交互服务帐户
UID 500+是人们用来交互访问计算机的“常规用户”
4.管理密码
一直以来,密码都存储在/etc/passwd文件中。但是/etc/passwd必须完全可读,因为命令(例如ls)需要访问该文件才能将UID映射到用户名。
将密码迁移到更加安全的/etc/shadow文件,该文件支持若干个不同的密码加密算法。只要加密的密码存储在专用文件中,密码期限策略和数据就可以存储。
4.1密码哈希中存储有哪3条信息?
$1$myPMmLiM$NUAUYAnGzIt1maaTWmj1k.
1. 1 -哈希算法(1表示MD5哈希)
2. myPMmLiM – 用于加密哈希的salt
3. NUAUYAnGzIt1maaTWmj1k. - 已加密的哈希
4.2/etc/shadow字段
root:$1$myPMmLiM$NUAUYAnGzIt1maaTWmj1k.:15183:0:99999:7:::
1. 用户名
2. 密码散列
3. 上次密码更改日期(自1970年1月1日以来的天数)
4. 最短密码期限(按天数计,0 = 无最短期限要求)
5. 最长密码期限(按天数计)
6. 密码警告期限(按天数计,0 = 未指定警告)
7. 密码非活动期限(按天数计)
8. 账户到期日(自1970年1月1日以来的天数)
4.3下图显示了相关的密码期限参数,可以使用chage对其进行调整,以实施密码期限策略。
示例:
# chage -m 0 -M 90 -W 7 -I 14 username
在下次登录时,chage -d 0 username将强制更新密码。
chage -l username 将列出用户名的当前设置。
usermod 可以修改账户,包括通过-L选项进行“锁定”。
5.管理组
与用户一样,组也有名称和编号(GID)。本地组在/etc/group中定义。LDAP也可用于提供组信息。
5.1主要组
每个用户只有一个主要组。
对于本地用户,主要组通过/etc/passwd第三个字段中列出的组的GID编号定义
通常,用户创建的新文件归主要组所有。
通常,新创建用户的主要组为具有与该用户相同名称的新创建组。该用户是这一用户专用组(UPG)的唯一成员。
5.2补充组
用户可以是0或多个补充组的成员。
属于本地组补充成员的用户列在/etc/group中组条目的最后一个字段中。对于本地组,用户成员身份
由/etc/group中组条目的最后一段中找到的逗号分隔的用户列表来确定。
groupname:password:GID:user1,user2,user3
补充组成员身份用来帮助确保用户具有访问系统中文件和其他资源的权限。
5.3管理补充组
1. groupadd -g 601 groupname 创建名为groupname且GID为601的补充组。
2. usermod -aG groupname username 会将用户username添加到groupname中。
6.chown命令改变某个文件或目录的所有者和所属的组
该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
语法:
chown(选项)(参数)
参数:
-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quite或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
-v或——version:显示指令执行过程;
本文出自 “技术人生,简单不简单” 博客,请务必保留此出处http://willis.blog.51cto.com/11907152/1845237
Linux用户和组管理