linux 用户管理

用户及用户组

linux文件属性和权限的时候提到过用户和用户组,

 

回顾:

linux是多任务、多用户的系统。

 

用户、用户组的概念

每个文件和进程,都需要对应一个用户和用户组

 

linux系统时通过UID和GID来识别用户和组的。

用户名相当于人名(给人用的)

UID和GID相当于身份证号(系统用的)

linux管理员:root

 

用户和组的关系:

一对一,多对一,一对多

 

linux系统用户分类:

超级用户:UID为0代表是root,皇帝

普通用户:UID范围500---65535,由超级用户或者具有超级用户权限的用户创建的用户(大臣、布衣)。

虚拟用户:UID范围1--499,存在满足文件或者服务启动的需要。一般都不能登录,只是傀儡

每个文件和进程,都满要对应一个用户和用户组。

 

和用户关联的四个文件

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

以上文件内容是由冒号分隔:/etc/Passwd内容需要比较熟悉(放在大脑里),其它的了解(在大脑建立索引)

 

 

用户管理的命令:

 

useradd

添加用户

userdel

删除用户及相关用户的配置文件

passwd

为用户设置或改密码,更改/etc/shadow文件

usermod

修改用户信息,可以修改登录名、用户的家目录等

id

显示用户的UID,GID及所属用户组

chage

修改用户密码属性,管理/etc/shadow文件

groupadd

添加组

groupdel

除组

groups

查看组信息

whoami

查看当前用户

su

切换角色

sudo

提权

visudo

编辑sudo配置文件(自动检查语法),也可以用vi来编辑/etc/sudoers实现                                        

/etc/skel文件

用户环境变量存放的初始目录

w whlast lastlog

查询登陆用户信息

 

 

------------------------------------------------------

6.4.3 /etc/skel目录

 

    /etc/skel 日录是用来存放新用户环境变量文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家下:默认情况下,/etc/skel 下的所有文件都是隐藏之件(以.开头的的之件):通过改、添加、删/etc/skel 文件,我们为新创建的用户提供统一的、标准的、初始化用户环境

    查看/etc/skel 目录下的内容:

 

 1 [root@wen ~]# ls -al /etc/skel
 2 总用量 24
 3 drwxr-xr-x.  3 root root 4096 8月  30 05:50 .
 4 drwxr-xr-x. 91 root root 4096 10月 22 01:52 ..
 5 -rw-r--r--.  1 root root   18 7月  24 2015 .bash_logout
 6 -rw-r--r--.  1 root root  176 7月  24 2015 .bash_profile
 7 -rw-r--r--.  1 root root  124 7月  24 2015 .bashrc
 8 drwxr-xr-x.  2 root root 4096 11月 12 2010 .gnome2
 9  
10 [root@wen ~]# cd /etc/skel
11 [root@wen skel]# touch readme.txt
12 [root@wen skel]# useradd wen
13 [root@wen skel]# ll /home/wen -al
14 总用量 24
15 drwx------  3 wen  wen  4096 10月 22 03:00 .
16 drwxr-xr-x. 8 root root 4096 10月 22 03:00 ..
17 -rw-r--r--  1 wen  wen    18 7月  24 2015 .bash_logout
18 -rw-r--r--  1 wen  wen   176 7月  24 2015 .bash_profile
19 -rw-r--r--  1 wen  wen   124 7月  24 2015 .bashrc
20 drwxr-xr-x  2 wen  wen  4096 11月 12 2010 .gnome2
21 -rw-r--r--  1 wen  wen     0 10月 22 02:59 readme.txt

 

 

/etc/skel业场景作用

1、可以把通知的内容放到skell,让登录的人去看

2、统一初始化新用户的环境变量

3、面试题:出现bash4.1$问题原因及解决方法。环境变量没了或没有家目录或下面的.bashrc*被删

知识点:

[root@wen skel]# PS1='[u@h W ]$'

[root@wen skel03:08:19]#

 

-----------------------------------------------------------------------------------

6.4.4  /etc/login.defs配置文件

     /etc/login.defs 文件是用来定义用户创建时需要的一些用户的配置信息,如创建用户时,是否需要目录,UIDGID的范围,用户及密码的有效期等等

*REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR        Maildir
MAIL_DIR        /var/spool/mail
#MAIL_FILE        .mail
 
# Password aging controls:
#
#        PASS_MAX_DAYS        Maximum number of days a password may be used.
#        PASS_MIN_DAYS        Minimum number of days allowed between password changes.
#        PASS_MIN_LEN        Minimum acceptable password length.
#        PASS_WARN_AGE        Number of days warning given before a password expires.
#
PASS_MAX_DAYS        99999
PASS_MIN_DAYS        0
PASS_MIN_LEN        5
PASS_WARN_AGE        7
 
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                          500
UID_MAX                        60000
 
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                          500
GID_MAX                        60000
 
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD        /usr/sbin/userdel_local
 
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME        yes
 
# The permission mask is initialized to this value. If not specified, 
# the permission mask will be initialized to 022.
UMASK           077
 
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
 
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512 
View Code 

 

6.4.5 /etc/default/useradd文件

   /etc/default/useradd文件是在使用useradd添加用户时的一个默认的配置文件,可以使用"useradd -D 参数"这样的命令格式来修改文件里的内容,

1 [root@wen ~]#cat /etc/default/useradd
2 # useradd defaults file
3 GROUP=100                             #依赖于/etc/login.defs的USERGROUPS_ENAB参数,如果为no,则此处控制
4 HOME=/home                          #把用户的家目录建在/home中
5 INACTIVE=-1                       #是否启用账号过期停权,-1表示不启用
6 EXPIRE=                               #账号终止日期,不设置表示不启用
7 SHELL=/bin/bash             #用户默认所用的血液类型
8 SKEL=/etc/skel#配置新用户家目录的默认文件存放路径,前文提到的/etc/skell,就是配在这里生效的,即当我们使用useradd添加用户时,用户家目录下的文件,都是从这里配置的目录中复制过去的。
9 CREATE_MAIL_SPOOL=yes  #创建mail文件

 

 

useradd  参数选项

注释说明

-c  comment

新账号passwd 的说明栏,相当于该账号的注释说明

-d home_dir

新账号每次登陆时所使用的home_dir,预设值为default_homelogin的名字,并当成登入时目录的名称

-e expire_date

账号终止日期。日期格式指定为MM/DD/YY

-g initial_group

group名称或以数字来作为用户登录起始用户组group,用户组名须为系统现有存在的名称,用户数字也须为现有存在的用户组,预设的用户组数字为1

-G  group,[…]

定义用户为多个不同groups的成员,每个用户组使用","逗号分分隔。用户组名同-g选项限制,默认值为用户的起始用户组。

-M

不建立家目录优先于/etc/login.defs文件的设定,一般创建虚拟用户建立家目录部署服务时需要创建虚拟用户

-s

用户登录后使用的shell名称,默认值不填写,这样系统会帮你指定预设登入shell(根据/etc/default/useradd预设的值)

-u

用户的ID,这个必须是唯一的,除非用-o选项,数字不可为负值

 

 

 1 [root@wen ~]# useradd ju01 -g fadewalk -e "2019/07/01" -M
 2 [root@wen ~]# tail -1 /etc/passwd
 3 ju01:x:506:501::/home/ju01:/bin/bash
 4 [root@wen ~]# id ju01
 5 uid=506(ju01) gid=501(fadewalk) 组=501(fadewalk)
 6 [root@wen ~]# ls -ld /home/ju01
 7 ls: 无法访问/home/ju01: 没有那个文件或目录
 8 [root@wen ~]# chage -l ju01
 9 Last password change                                        : Oct 21, 2017
10 Password expires                                        : never
11 Password inactive                                        : never
12 Account expires                                                : Jul 01, 2019
13 Minimum number of days between password change                : 0
14 Maximum number of days between password change                : 99999
15 Number of days of warning before password expires        : 7
View Code

 

  改变新建用户的预设值

    当执行useradd命令加-D选项时,可以更改新建用户的默认配置值(/etc/default/useradd,或是有命令编辑的方式更新预设置

 

 

useradd -D参数选项

注释说明

-b    default_home

定义用户所属目录的前一个目录,用户名称会附加在default_home面用来建立新用户的目录,使用-d后则此项无效

-c      default_expire_date

用户账号停止日期,

-f   default_inactive

账号过期几日后停权

-g   default_group

新账号起始用户名或ID,用户组须为现有存在的名称用户ID为现存有用户组

-s   default_shell

用户登入后使用的shell名称修改后新加入的用户将使用shell类型,useradd -s 参数优先此默认配置

 

 

原文地址:https://www.cnblogs.com/wenyule/p/7715397.html