Linux账号管理
来源:互联网 发布:叶紫涵网络直播 编辑:程序博客网 时间:2024/06/05 16:04
Linux的账号管理包括用户与用户组,它们两者是多对多的关系,即一个用户可以属于多个用户组,且一个用户组可以包含多个用户。一个用户组中的用户具有相同的权限。
在Linux中,用户的账户信息和用户组信息都记录在指定的文件中,这些文件构成了Linux用户管理的基础。下面我们就详细介绍Linux用户管理相关的文件。
Linux的账号文件
1./etc/passwd
这个文件虽然叫passwd,但实际存放Linux所有的账户信息,其中每一行表示一个账户信息,每条账户信息由7个字段构成,每个字段用:分隔。
这个文件中除了有root账户、我们自定义的用户账户外,还有很多系统账户,如下所示:
root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
下面详细介绍每个参数的含义:
1.1. 账号名称
1.2. 密码
在passwd文件中,密码以x表示,实际的密码存放在专门的密码文件/etc/shadow中。为何要这么玩呢?
早起的Unix系统就是将密码存放在passwd文件中的这个位置上。但由于很多程序都需要读这个文件获取用户信息,那么密码就很容易被获取到,虽然密码采用了MD5消息摘要后再存储在这里,但仍然有被破解的风险,因此为了安全,现在的Linux系统都将密码单独存放在/etc/shadow中。
1.3. UID
UID=User Identifier,它是用户的标识。Linux通过UID来区分一个个账户。
UID是一个0-65535范围内的数字,不同的取值有不同的含义:
- UID=0
表示该账户为系统管理员。root的UID即为0.当然,你可把其他账户的UID设为0,此时该账户就拥有与root一样的权限。 - UID=1~99
Linux自行创建的账户,权限和普通账户没啥区别,只是为了规范。 - UID=100~499
系统操作相关的账户。这些账户是由用户创建的,权限和普通账号的权限没啥区别,也只是为了规范。 - UID=500~65535
普通用户的UID。
1.4. GID
GID=Group Identifier,他是用户组的ID。它的取值范围和UID遵循一样的规范。
1.5. 账号说明信息
这个字段是账户的说明信息,并没什么卵用,只是为了看看。
1.6. 用户主目录
每个账户都有一个主目录,用户可以在各自的主目录下为所欲为。
这个字段就是设置账户的主目录的路径。
1.7. 该账户登录后的shell
当一个用户登录后,Linux会给该用户分配一个shell来和Linux内核通信,这样该用户就能操控这台计算机了。那么Linux的shell有好多种,究竟给登录用户分配哪个shell呢?这就是在这个参数中设定。
当然,如果不想让用户操控这台计算机的话,可以将这个参数设为/sbin/nologin,这样在用户登录后Linux不会给他分配shell,从而该用户无法操控这台机器。
2./etc/shadow
这个文件存放所有账号的密码,它的权限为-r——–,也就是只有root才能查看这个文件,它具体的内容如下:
root:$1$cfvc4Vwh$KuVS9yJeWOcLkEXKbTryf.:16477:0:99999:7:::bin:*:16300:0:99999:7:::daemon:*:16300:0:99999:7:::adm:*:16300:0:99999:7:::lp:*:16300:0:99999:7:::
和passwd一样,也是一行代表一个账号,参数之间用:分隔,每个参数的含义如下:
2.1 账号名称
2.2 密码
这里才是账号真正的密码存放的地方,它采用了MD5消息摘要。
2.3 最近修改密码的日期
这个字段记录了上次修改密码的时间。
这个字段表示从1970-1-1到上次修改密码的天数。
如上述root密码的修改时间为16477,也就是1970-1-1往后16477天,也就是2015年2月11日。
2.4 密码不可以被修改的天数
这个值是从上次修改时间算起,密码不可以被修改的天数。
2.5 密码需要被重新设置的天数
从第三个字段开始,经过多少天之后就需要重新设置密码。
2.6 密码更改期限前的发出警告的天数
2.7 密码过期后的宽限天数
在宽限期间内账号仍然可以登录,只不过会给出改密码的提示。
2.8 账号失效日期
这个值也是从1970-1-1往后的天数,到了那天,这个账号就无法登录。
收费服务可以使用这个功能。
2.9 保留字段
保留字段目前还没有任何作用。
3./etc/group
这个文件中记录的是GID和用户名名的对应关系。具体内容如下:
root:x:0:rootbin:x:1:root,bin,daemondaemon:x:2:root,bin,daemonsys:x:3:root,bin,adm
3.1 用户组名
3.2 用户组密码
用户组密码很少使用,这个密码由用户组管理员设置。
当然和用户密码一样,用户组的密码也存储在一个独立文件中:/etc/gshadow
3.3 GID
用户组的ID
3.4 该组的用户的用户名
本组成员的用户名。多个成员间用,隔开,注意:不能有任何空格!
4./etc/gshadow
这个文件用于存储用户组的密码,这个文件主要作用是:如果root管理员非常忙,没空管每个用户组的成员,那么可以指定几个用户组管理员,专门管理每组成员的添加与删除。
本文件具体内容如下:
root:::rootbin:::root,bin,daemondaemon:::root,bin,daemon
4.1 用户组名
4.2 密码
密码为!表示本用户组无管理员。
4.3 本用户组的管理员账号
4.4 该用户组的成员账号
账号管理
了解了这些文件的构成后,接下来我们使用目录来操作这些文件,从而实现用户账号的管理。
1. 新增用户:useradd
useradd [-参数 参数值] 用户名
参数详解:
1.1 -u
为账户指定一个UID。
1.2 -g
为账户指定一个初始化的GID。
1.3 -G
为账户指定还需要加入的用户组。
1.4 -M
1.5 -m
1.6 -c
设置账户的描述信息。
1.7 -d
设置账户的主目录。
1.8 -r
创建一个系统管理员账号。
1.9 -s
指定这个账户的shell。
1.10 -e
设置账号失效日期,格式为:YYYY-MM-DD。
1.11 -f
设置密码失效日。-1表示永不失效。
1.12 -D
查看useradd默认的参数值。
当不用任何参数创建账号时,会使用useradd默认的参数创建,我们可以使用useradd -D查看默认的参数,如下:
GROUP=100#默认的用户组GID为100HOME=/home#默认在/home下创建用户主目录INACTIVE=-1#密码默认用户失效EXPIRE=#账号也用户失效SHELL=/bin/bash#默认的shell为bashSKEL=/etc/skel#将这个路径下的目录复制一份作为用户主目录CREATE_MAIL_SPOOL=yes#是否用户的mailbox
2. 设置密码:passwd、chage
这两个命令其实都是对/etc/shadow文件中的内容进行修改。passwd能设置/etc/passwd文件中的一部分参数,而chage能设置另一部分参数。
2.1 passwd
passwd [-参数 参数值] 用户名PS:不加用户名表示修改当前账户的密码。
2.1.1 -l
将账号锁住,实则将shadow文件中的密码改为!
2.1.2 -u
将账号解锁。
2.1.3 -S
列出该用户密码的详细信息。
2.1.4 -n
设置不可以修改密码的天数。
2.1.5 -x
设置必须要修改密码的天数。
2.1.6 -w
设置过期前警告的天数。
2.1.7 -i
设置密码失效日期。
2.2 chage
chage [-参数 参数值] 用户名
2.2.1 -l
列出该账号的详细密码信息。
2.2.2 -d
查看该账号的最近一次改密时间。
2.2.3 -E
设置账号失效日。
2.2.4 -I
设置密码失效日。
2.2.5 -m
设置密码不可以被修改的天数。
2.2.6 -M
设置密码有效期。
2.2.7 -W
设置密码过期警告的天数。
3. 修改账户信息:usermod
该命令用于修改/etc/passwd和/etc/shadow中的信息。
usermod [-参数 参数值] 用户名
3.1 -L
冻结该账号。其实将shadow的密码改为!
3.2 -U
解冻该账号。
3.3 其他参数请自行查阅。
4. 删除账户:userdel
userdel [-r] username-r :将用户相关的数据均删除,包括如下数据:/etc/passwd和/etc/shadow中的账户数据/etc/group和/etc/gshadow中的分组信息/home/username和/var/spool/mail/username中的个人数据
以下命令较为简单,请自行查阅!
5. 查看自己账户信息:finger
6. 设置我的个人信息:chfn
7. 修改自己账户的shell:chsh
8. 查询指定账户的UID/GID:id
9. 新增用户组:groupadd
10. 修改用户组:groupmod
- Linux-Linux账号管理
- linux管理普通账号
- linux账号管理
- Linux账号管理
- linux账号管理1
- linux账号管理
- Linux账号管理
- linux账号管理
- linux账号管理
- linux账号管理
- Linux账号管理
- Linux 账号管理
- Linux中的账号管理
- linux 账号管理
- LINUX账号管理
- Linux账号管理
- Linux账号管理
- Linux常用命令-账号管理
- reactjs入门到实战(五)---- props详解
- 指针与引用
- html开发---day01
- python mysql操作 基础
- Day05之GUI
- Linux账号管理
- js字符串转化数据
- __ATTRIBUTE__
- linux文件权限与目录配置
- POJ 2486Apple Tree (树形dp)
- Java算法——求三个数中的最大值(或最小值),5种方法
- javascript_lesson3_引用类型
- 判断1-100以内的素数
- 解决ubuntu14 无法CIFS挂载window共享文件