用户相关的文件及命令

第1章 用户管理的基本介绍

Linux system每个文件和进程,都需要对应一个用户和组,
Linux system是通过UID和GID来识别用户和组的。用户名相当于人名,UID相当于×××号,系统只能识别UID。

1.1 用户和组的关系:

一对一,一对多,多对一,多对多。

1.2 Linux system 用户分类:

由/etc/login.defs这个文件里面的内容来控制
超级用户:UID为0,代表root
普通用户:UID范围500-65535,由超级用户或者具有超级用户权限的用户创建的用户
虚拟用户:UID范围1-499,存在满足文件或者服务启动的需要,一般都不能登录。

第2章 用户相关的文件说明

2.1 /etc/skel/

/etc/skel目录是用来存放新用户的环境变量文件的目录,下面好多隐藏文件,当我们使用useradd指令创建新用户的时候,这个目录下的所有文件都会被自动的复制到新用户的家目录下。我们可有通过添加删除修改这个目录下的内容,来为新用户提供统一的标准的初始化用户环境

[[email protected]_50 skel]# ls -a
.  ..  .bash_completion  .bash_logout  .bash_profile  .bashrc
[[email protected]_50 skel]# touch 123.txt
[[email protected]_50 skel]# useradd 122
[[email protected]_50 skel]# ls /home/122/
123.txt
2.2 /etc/passwd
[[email protected]_50 tmp]# cat /etc/passwd| head -n 2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
里面存放的是用户的相关信息分别代表
按照冒号分隔来说:
第一段:用户名称 usermod -l 可以修改
第二段:密码位,但是真实的密码不再这个文件里面,在/etc/shadow里面存放着,而且是密文
第三段:用户的UID  useradd -u 指定
第四段:用户的GID  useradd -g指定 ,usermod -g 修改
第五段:用户的说明信息,useradd -c添加,
第六段:指定用户登录时的目录 useradd -m 指定,usermod -d 修改
第七段:登录时使用的shell  useradd -s 指定,usermod -s 修改

2.3 /etc/shadow

存放的是给用户密码,有效期有关的配置

[[email protected]_50 tmp]# tail -3 /etc/shadow
zsf:$6$4WcGshTr$RTDci2kvT9ODqJyKjLOZOHlDCHoLvOVqz66muWo5WntqVA3o4ipCao3bLEjWQ82W.CoPQSyUby81EpTT/XqRd1:17728:0:99999:7:::
haha:123123:17727:0:99999:7:::
xixi:123:17728:0:99999:7:::
按照“:”来分隔
第一段:用户名称
第二段:用户的密码。没有就用!表示,通过passwd设置的是密文的,useradd -p指定的密码是明文的
第三段:“密码最后一次修改时间”,在centos里表示从“1970年1月1日”到修改密码的那一天经历的天数
第四段:密码最小修改的间隔,在最下间隔之内不能修改密码
第五段:密码最长多久必须更改一次密码,在这个天数之内必须改次密码
第六段:警告时间,密码过期前多少天提醒
第七段:不活动时间,用户没有登录活动但账号仍能保持有效的最大天数
第八段:失效时间,密码的生存周期,超过这个天数该账号就不能用了。时间也是相对于“1970年1月1日”开始的,通过usermod -e来更改

2.4 /etc/group

存放给用户组相关的

[[email protected]_50 tmp]# grep "root" /etc/group
root:x:0:
以“:”分隔
第一段:用户组名称
第二段:用户组密码
第三段:用户组GID
第四段:这个群组里面所有的账号

2.5 /etc/gshadow

[[email protected]_50 tmp]# grep "root" /etc/gshadow
root:::
以冒号分隔:
第一段:用户组名称
2.6 /etc/login.defs
用来定义创建用户时需要的一些用户的配置信息。
PASS_MAX_DAYS   99999    密码的有效期
PASS_MIN_DAYS   0         两次修改密码的最小间隔
PASS_MIN_LEN    5         密码的最小长度
PASS_WARN_AGE   7       密码到期前多少天提醒
创建用户的时候最小UID和最大UID
UID_MIN                   500
UID_MAX                 60000
创建用户的时候最小GID和最大GID
GID_MIN                   500
GID_MAX                 60000

CREATE_HOME     yes     #是否自动创建家目录
UMASK           077     #umask值控制用户家目录的
# This enables userdel to remove user groups if no members exist.
#删除用的时候要删除用户组
USERGROUPS_ENAB yes

2.7 /etc/defaulst/useradd

创建用户默认信息的配置文件

[[email protected]_50 default]# cat useradd
#useradd defaults file
GROUP=100    #依赖于/etc/login.defs的USERGROUPS_ENAB参数,如果为no,则此处控制
HOME=/home   用户家目录存在的地方
INACTIVE=-1  是否启用账号过期停权,-1表示不使用
EXPIRE=      账号终止日期
SHELL=/bin/bash   创建用户的时候默认使用的shell
SKEL=/etc/skel    创建用户从哪个目录拷贝初始环境到家目录下
CREATE_MAIL_SPOOL=yes   是否创建maill文件,在/var/mail

useradd 创建用户(修改的是/etc/passwd这个文件)

3.1 命令说明

useradd - create a new user or update default new user information
创建一个新的用户,或者更高这个新用户的默认信息
修改的是/etc/passwd这个文件

3.2 命令格式

useradd [options] user_name

3.3 命令选项

3.3.1.1 -m 创建家目录,默认选项

[[email protected]_50 ~]# useradd useradd_user
[[email protected]_50 ~]# ll -d /home/useradd_user/
drwx------ 2 useradd_user useradd_user 4096 Jul 14 18:41 /home/useradd_user/

3.3.1.2 -g 创建用户所属组,如果不指定就创建一个和用户uid,名字一样的用户组

[[email protected]_50 ~]# id useradd_user
uid=500(useradd_user) gid=500(useradd_user) groups=500(useradd_user)

3.3.1.3 -G 指定用户的附属组

[[email protected]_50 tmp]# useradd 123 -G zsf   指定附属组是
[[email protected]_50 tmp]# grep zsf /etc/group
zsf:x:500:123
[[email protected]_50 tmp]# id 123
uid=502(123) gid=502(123) groups=502(123),500(zsf)

3.3.1.4 -s 指定用户的登录shell,如果不指定默认是/bin/bash

[[email protected]_50 ~]# grep "useradd_" /etc/passwd
useradd_user:x:500:500::/home/useradd_user:/bin/bash

3.3.1.5 -M 创建时不创建用户家目录

[[email protected]_50 ~]# useradd test_zsf -M
[[email protected]_50 ~]# ll -d /home/test_zsf
ls: cannot access /home/test_zsf: No such file or directory

3.3.1.6 -N 创建是不创建用户组

3.3.1.7 -p “密码” 创建时指定用户密码,在/etc/shadow文件里面是明文显示,不安全

[[email protected]_50 tmp]# useradd zsf -p "123456"
3.3.1.8 -u 指定UID
[[email protected]_50 tmp]# useradd -u 888 zsf
[[email protected]_50 tmp]# id zsf
uid=888(zsf) gid=888(zsf) groups=888(zsf)

3.3.1.9 -c “说明信息”,添加用户的说明信息

修改的是/etc/passwd 第五段
[[email protected]_50 ~]# useradd zsf -c "this is test user"
[[email protected]_50 ~]# grep ^zsf /etc/passwd
zsf:x:502:502:this is test user:/home/zsf:/bin/bash 

第4章 usermod 更改用户属性

4.1 命令说明

修改用户的基本属性,没办法改变正在使用的账号信息

4.2 命令格式

usermod  [options] user_name

4.3 命令选项

4.3.1 -c 修改用户的说明信息

[[email protected]_50 ~]# usermod zsf -c "this is test usermod_c"
[[email protected]_50 ~]# grep ^zsf /etc/passwd
zsf:x:502:502:this is test usermod_c:/home/zsf:/bin/bash

4.3.2 -d 修改用户登录时的目录,一般默认为家目录,作为登录时的目录,首先这个用户要对这个目录具有权限

[[email protected]_50 ~]# grep ^zsf /etc/passwd
zsf:x:502:502:this is test usermod_c:/zsf:/bin/bash

4.3.3 -g 修改用户的属组

[[email protected]_50 ~]# usermod -g fsz zsf
[[email protected]_50 ~]# grep ^zsf /etc/passwd
zsf:x:502:503:this is test usermod_c:/zsf:/bin/bash

4.3.4 -G 修改用户的附属组

[[email protected]_50 ~]# usermod -G zsf zsf
[[email protected]_50 ~]# grep "^zsf" /etc/gshadow
zsf:!::zsf

4.3.5 -s 修改用户登录的shell

[[email protected]_50 tmp]# grep test /etc/passwd
test:x:501:501::/home/test:/bin/bash
[[email protected]_50 tmp]# usermod test -s /sbin/nologin
[[email protected]_50 tmp]# grep test /etc/passwd
test:x:501:501::/home/test:/sbin/nologin

4.3.6 -L 锁定用户

4.3.7 -U 解锁用户

4.3.8 -s 修改用的登录的shell

[[email protected]_50 ~]# usermod zmy -s /sbin/nologin
[[email protected]_50 ~]# grep "502" /etc/passwd
zmy:x:502:503:this is test usermod_c:/zsf:/sbin/nologin
4.3.9 -l 修改账号的名称
要更改成的名称放在前面,账户的UID没有变,只是名称变了而已
[[email protected]_50 ~]# usermod -l  zmy zsf
[[email protected]_50 ~]# grep "502" /etc/passwd
zmy:x:502:503:this is test usermod_c:/zsf:/bin/bash
4.3.10 -e "时间" 指定用户到那一天到期,到期后就不能登录使用了
直接在配置文件里面改也行,但是比较麻烦
[[email protected]_50 tmp]# usermod -e "2018-01-01" test
[[email protected]_50 tmp]# grep test /etc/shadow
test:!!:17877:0:99999:7::17532:

第5章 userdel 删除用户

5.1 命令说明

删除指定的用户,以及用户相关的文件。若不加选项只是删除用户的账号,而不删除相关的文件

5.2 命令格式

userdel [options] user_name

5.3 命令选项

5.4 -f 强制删除,和rm的参数选项类似

5.5 -r 删除用户的同时,删除与用户相关的所有文件,删除用户家目录

[[email protected]_50 tmp]# userdel 123
[[email protected]_50 tmp]# ll -d /home/123/
drwx------ 2 502 502 4096 Dec 12 01:18 /home/123/
[[email protected]_50 tmp]# userdel -r test
[[email protected]_50 tmp]# ll -d /home/test
ls: cannot access /home/test: No such file or directory

第9章 chage 修改账号和密码的有效期

9.1 命令说明

用来修改账号和密码的有效日期,主要修改/etc/shadow

9.2 命令格式

chage [options] userName

9.3 命令选项

9.3.1 后面直接跟用户名,交互式修改

[[email protected]_50 tmp]# chage zsf
Changing the aging information for zsf
Enter the new value, or press ENTER for the default

-m  Minimum Password Age [0]: 7         两次更改密码的间隔
-M  Maximum Password Age [99999]: 20    密码多少天之内必须更改
-d  Last Password Change (YYYY-MM-DD) [2018-07-16]: 2018-07-17   最后一次修改密码的时间
-w  Password Expiration Warning [7]: 9     密码过期多少天前提醒
-i  Password Inactive [-1]:               密码到期多少天以后还不改密码,就禁止使用
-E  Account Expiration Date (YYYY-MM-DD) [-1]: 2018-08-08   用户账号到期时间
9.3.2 -m 修改账号更改密码的间隔,相当于/ect/shadow第4段
9.3.3 -M 修改久不修改密码的时间,相当于/ect/shadow第5段
9.3.4 -d 最后一次修改密码的时间,相当于/etc/shadow第3段
9.3.5 -w 密码过期前多少天提醒,相当于/ect/shadow第6段
9.3.6 -i 密码过期多少天以后还不更改密码,此账号不能用,相当于/etc/shadow第7段
9.3.7 -E 账号到期的时间,相当于/etc/shadow第8段
9.3.8 -l 列出以上这些信息
[[email protected]_50 tmp]# chage -l zsf
1)Last password change                  : Jul 17, 2018
2)Password expires                  : Aug 06, 2018
3)Password inactive                 : never
4)Account expires                       : Aug 08, 2018
5)Minimum number of days between password change        : 7
6)Maximum number of days between password change        : 20
7)Number of days of warning before password expires : 9
说明:
1)最近一次修改密码的时间         /ect/shadow中的第3段
2)密码的到期时间
3)密码到期后多少天不改密码就禁用     /ect/shadow中的第7段
4)账户的到期时间                    /ect/shadow中的第8段
5)两次改密码的时间最小间隔,在这个间隔内不能再更改密码    /ect/shadow中的第4段
6)密码的最大改密码间隔,在这个时间内必须改密码           /ect/shadow中的第5段
7)密码到期多少天之前提醒。                               /ect/shadow中的第6段

原文地址:http://blog.51cto.com/13447608/2151198

时间: 2024-10-08 12:20:22

用户相关的文件及命令的相关文章

目录与文件处理命令

显示目录与文件 命令名称:ls 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 功能描述:显示目录文件 语法:ls 选项[-ald] [文件或目录] -a 显示所有文件,包括隐藏文件 -l 详细信息显示 -d 查看目录属性 u g o:u所有者 g所属组 o其他人 r w x:r读 w写 x执行 目录与文件处理命令 创建新目录:mkdir 命令名称:mkdir 命令英文原意:make directories 命令所在路径:/bin/mkdir 执行权限:所有用户 语法:

linux每日命令(30):Linux 用户及用户组相关文件、命令详解

阅读目录(Content) 一. 用户.用户组概念及其文件结构详解 二. 常用的用户.用户组shell命令 用户相关命令 useradd userdel usermod passwd 用户组相关命令 groupadd groupdel groupmod 三. 综合示例 1.建立两个用户组group1和group2,以及三个用户dennis.daniel.abigale,并且将前2个用户分配在group1用户组下,后一个分配在group2用户组下,并给dennis设置密码 2.改变abigale的

用户组与权限管理的理解及切换用户相关命令使用

用户认证 用户使用账户登入Linux系统时,系统要对该账户进行3A认证,确实账户的身份,进行授权并且进行行为的审计 3A: Authentication 认证  Authorization 授权  Accounting/Audition 审计 用户及组的分类 系统管理员: root 0     普通用户:  1-65535      系统用户:1-499(centos6)  1-999(centos7)      登录用户:500+(centos6)   1000+(centos7) 图1-1

CentOS(九)--与Linux文件和目录管理相关的一些重要命令①

   接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 "路径" 以及 "相对路径" 与 "绝对路径" 的概念. 在之前的学习中,就反复的强调了Linux的目录是 "树状目录" .假设我们需要在任意一个目录下切换到另一个目录下,通常是使用的是 cd 这个命令,此时在写切换的目录名时就有两

CentOS(十)--与Linux文件和目录管理相关的一些重要命令②

在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Linux文件和目录管理相关的一些重要命令,包括 目录与路径相关的命令(cd.pwd.mkdir.rmdir等).管理文件与目录的命令(ls.cp.rm.mv等).查看文件内容命令(cat.more.less等),在这一篇随笔中,将继续详细记录与Linux文件和目录管理相关的其他一些重要命令. 一.修改文

与用户和组相关的文件位置   --   学习笔记

下列文件内容是以":"分隔,123...代表所在的位置/etc/passwd  : root:x:0:0:root:/root:/bin/bash 1."root"用户帐户登录名称 2."x"使用x表示密码占位符 3."0"用户帐户的UID 4."0"用户帐户的GID,即该用户帐户的基本组的ID 5."root"注释信息,如用户职位.用户完整名称等 6."/root"

Linux用户相关文件之组文件

组信息文件: 1.文件地址: /etc/group -rw-r--r--. 1 root root 492 10月 6 21:56 /etc/group 2.文件内容: xiaol:x:500: 3.信息含义: 第1个字段:组名称 第2个字段:组密码标志 第3个字段:GID 第4个字段:组中附加用户 组密码文件: 1.文件地址: /etc/gshadow ----------. 1 root root 399 10月 6 21:56 /etc/gshadow 2.文件内容: xiaol:!::

如何禁止某个linux用户访问某些文件夹及执行某些命令

方案1: 给这个文件A增加个a的隐藏属性,只能增加数据不能删除修改数据,只有root能设置这个隐藏属性 chattr +a A lsattr A 可以查看隐藏属性 方案2: 修改文件所属用户和组,普通用户不能访问文件A chown root:root A 方案3: 只有文件主人可以读取 chmod 700 A 原文地址:https://www.cnblogs.com/augusite/p/10001348.html

用户和组管理类命令

1.列出当前系统上所有已经登陆的用户的用户名,注意:同一个用户登陆多次,则显示一次即可. who |cut -d' ' -f1 | sort | uniq 2.取出最后登陆到当前系统的用户的相关信息 w|tail-n1或者who|tail-n1 3.取出当前系统上被用户当做其默认shell的最多的那个shell cat /etc/passwd | awk -F':' '{print $7}'|uniq –c 结果为:/sbin/nologin awk -F':' '{a[$7]++}END{fo