linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌。
【Linux用户】
即UID分为两大类:管理员 UID:0
普通用户 UID:1-65535
普通用户又分为:系统用户和登录用户两种:
系统用户:1-499(centos6系统)1-999(centos7系统)一般来说,每个系统进程都对应一个系统用户,进行权限分配;
登录用户:500+(centos6)1000+(centos7)通过交互式方式登录
【Linux组GID】
管理员组:root 0
普通组:1-65535
普通组又分为系统组和非系统组
系统组:1-499(centos6)1-999(centos7)
非系统组:500+(centos6)1000+(centos7)
一个用户可以有多个不同的组:基本组(主组)和附加组(额外组)。
基本组组名和用户名相同,且仅包含一个用户,也叫私有组。基本组以外的组属于附加组
【用户和组的配置文件】
/etc/passwd 记录用户属性信息
内容由冒号分割成7个字段,每个字段的具体含义是:
用户名:密码:UID:GID:用户的详细信息:用户的家目录:用户的默认shell
/etc/shadow 记录用户密码信息
内容由逗号分成9个字段
用户名:加了密的密码:最近一次更改密码的日期:密码的最小使用期限:密码的最大使用期限:密码的警告时间段:密码禁用期:账户的过期日期:保留字段
/etc/group 记录组的属性信息
组名:组密码:组id:以当前组为附加组的用户列表(如果有多个,则以逗号隔开)
/etc/gshadow 组密码及其相关属性
组名:组密码(一般没有)
Linux中密码的格式:
mage1:$6$4kW6f7Qr0GFvqh$nryByGweKuNWKvr7ZZwszgojqtktU7KpjsV9E/M/wH5/7MDelx1Nft7m6Zl6xhoScT4PNSNEva6p90S/cZM6s.::
用户名:$为分隔符 6表示加密算法 后面两$之间的字符表示salt(如果有两个相同的密码,加入不同的salt就会生成截然不同的字符串,也就是后面的一长串字符)
用户命令
创建用户:useradd
-u:指定UID号
-o:配合-u选项,不检查UID的唯一性
-g:GID,指明用户所属基本组,可为组名,也 可以为GID
-c:用户的注释信息
-d:以指定的路径(必须不存在)为家目录
-s:指明用户的默认shell程序
-G:指明附加组,组必须事先存在,多个用,分割
-N:不创建私有组做主组,使用users做主组
-r:创建系统用户 centos6:ID<500
centos7:ID<1000
-D:显示默认设置
-D -s SHELL:更改默认设置
修改用户属性: usermod
usermod[OPTION] login
-u UID: 新UID
-g GID: 新基本组
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
-s SHELL:新的默认SHELL;
-c 'COMMENT':新的注释信息;
-d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m选项
-l login_name: 新的名字;
-L: lock指定用户,在/etc/shadow 密码栏的增加!
-U: unlock指定用户,将/etc/shadow 密码栏的! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期;
-f INACTIVE: 设定非活动期限(账号过期宽容时间);
删除用户 userdel
-r 同时删除家目录
查看用户信息
id命令
id username #查看指定用户的组信息
-u:UID
-g:GID
-G:group
-n:name
cat /etc/passwd #查看用户属性信息
getent passwd #查看用户属性信息
getent passwd username #查看指定用户属性信息
设置密码:
passwd[OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
passwd: 修改自己的密码;
常用选项:
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-iinactivedays:非活动期限;
echo "123456" | passwd–stdin 用户名
【组】
新建组
groupadd[OPTION]… group_name
-g GID: 指明GID号;[GID_MIN, GID_MAX]
-r: 创建系统组;
修改组属性:groupmod
groupmod[OPTION]… group
-n group_name: 新名字
-g GID: 新的GID
删除组:groupdel
groupdel GROUP
组密码:gpasswd
gpasswd[OPTION] GROUP
-a user: 将user添加至指定组中;
-d user: 从指定组中移除用户user
-A user1,user2,…: 设置有管理权限的用户列表
查看组信息
groupmems[options] [action]
options:
-g, –group groupname更改为指定组(只有root)
Actions:
-a, –add username 指定用户加入组
-d, –delete username 从组中删除用户
-p, –purge 从组中清除所有成员
-l, –list 显示组成员列表
groups username 查看用户所属组列表
[root@si ~]# groupmems -l -g mage1 #查看组成员
zhangsan lisi
命令小技巧
为用户添加附加组
通常会覆盖掉以前的附加组,用下面的命令则会追加而不是覆盖
usermod –aG root,ftp username
usermod -G " " username 则会清空所有附加组
当我们需要批量添加用户的时候,不可能一个个的建,这时候就会用到下面的命令
批量添加用户newuser
vi user添加内容按/etc/passwd格式
newuser user
批量建立的没有密码
用cat pass.txt | chpasswd 命令批量修改
vi pass.txt添加如下
zhangsan:123
lisi:888
wagwu:000000
当我们不小心删除家目录或者使用useradd -d 指定家目录路径时,先给他创建了一个家目录,这时
[root@sibo1 testdir]# userdel -r wangwu
[root@sibo1 testdir]# mkdir wangwu
[root@sibo1 testdir]# useradd -d /testdir/wangwu wangwu
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it. #系统会提示:没有从skel目录复制任何文件到里面,所以我们就要手动复制
[root@sibo1 testdir]# getent passwd wangwu
wangwu:x:503:510::/testdir/wangwu:/bin/bash
[root@sibo1 testdir]#
[root@sibo1 testdir]# ls -a wangwu/
. ..
[root@sibo1 testdir]#
修复家目录:
cp –r /etc/skel/.[^.]* /home/sibo
cp -r /etc/skel/. /home/lisi
最后给大家写点小东西娱乐一下
修改描述信息chfn:在这里我们可以定制属于我们自己的个人信息
查看描述信息:finger 用户名
原创文章,作者:cszdz123,如若转载,请注明出处:http://www.178linux.com/29103