首页 技术 正文
技术 2022年11月18日
0 收藏 363 点赞 4,664 浏览 6438 个字

Linux系统下用户与组的管理

一、用户及组基本概述

Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配。

1、uid(用户身份标识)

(1)root用户

uid为0

(2)普通用户:1–65535

系统用户 系统已经已经存在专门用来对系统服务或者系统资源进行管理的

1–499(CentOS 6.X)

1–999 (CentOS 7.X)

登录用户(平时专门做系统管理的用户)

500+ (CentOS 6.X)

1000+ (CeentOS 7.X)

2、gid(用户组身份标识)

(1)root组

gid为0

(2)普通组

系统组:1-499(CentOS 6.X), 1-999(CENTOS7)

普通组:500+(CentOS 6.x), 1000+(CENTOS7)

3、用户和组的关系:

(1)每个用户必须属于一个与用户同名的组(默认的情况) 这个组一般叫做基本组(主组)

(2)一个用户可以属于除基本组之外的其他组,这个组就叫做(附加组)(辅助组)

二、用户和组的配置文件

1、用户的配置文件和用户的信息文件/etc/passwd

  [root@localhost yum.repos.d]# cat /etc/passwd

  root:x:0:0:root:/root:/bin/bash

  共有七个字段以“:”分隔,作用为:

第一字段root:用户名

第二字段x:密码占位符

第三字段0:用户UID

第四字段0: GID

第五字段root: 用户说明信息

第六字段 /root: 用户家目录

第七字段 /bin/bash 用户的shell

2、用户的配置文件/etc/shadow

[root@localhost yum.repos.d]# cat /etc/shadow

root:$6$NJND277cVP5/NHvE$tH3CGuhyQJ.btAswXYkcJUNr62LjEy24hXlvu.AA2fVLSfNwrSrIHhcBrZM5N61XkiE5M/t6x3k/XDkdcBObO1::0:99999:7:::bin:*:16659:0:99999:7:::

共有九个字段以“:”分隔,作用为:

第一字段 root:用户名

第二字段 为加密后的密码(密码这一段 如果是 ! * 说明这个账号是不可用被锁定)

第三字段 密码的最后一次修改日期(使用1970年1月1日作为标准时间,每过一天,时间戳加一)

第四字段 两次密码修改的时间间隔

第五字段 密码的有效期,为99999时表示永不过期

第六字段 密码到期几天时提示修改密码,此处表示密码到期之前7天提醒修改密码

第七字段 密码到期后的宽限天数,即密码到期后这个账户还可以使用几天

0 代表密码过期后立即失效

-1 代表密码过期后用户失效

第八字段 账号的失效时间,用时间戳表示

第九字段 保留

3、用户的组信息文件/etc/group

[root@localhost ~]# cat /etc/group

root:x:0:

共有四个字段以“:”分隔,作用为:

第一字段 组名

第二字段 密码占位符

第三字段 组ID即GID

第四字段 组里附加的用户

4、组密码文件/etc/gshadow

[root@localhost ~]# cat /etc/gshadow

root:::

共有四个字段以“:”分隔,作用为:

第一字段 组名

第二字段 组密码

第三字段 组管理员用户名

第四字段 组中附加用户

三、用户和组的管理

1、用户管理的重要目录

(1)用户的家目录

普通用户:/home/UserName,所有者和所属组都是此用户权限是700

超级用户:/root/,所有者和所所属组都是root用户,权限是550

(2)用户的模板目录:

/etc/skel目录:用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会被复制到新添加的用户的家目录下,/etc/skel目录下的所有文件都是隐藏文件。

/etc/default/useradd:

作用:在使用useradd添加用户时的一个需要调用的一个默认配置文件

内容:  # useradd defaults file

GROUP=100

HOME=/home           默认家目录

INACTIVE=-1            密码失效日期,shadow第7列

EXPIRE=                账号失效日期 第8列

SHELL=/bin/bash

SKEL=/etc/skel           家目录下面的隐藏文件的模板

CREATE_MAIL_SPOOL=yes 是否创建一个邮箱账户

/etc/login.defs :

  作用:用来定义创建用户时需要的一些用户配置信息

内容:MAIL_DIR        /var/spool/mail

PASS_MAX_DAYS   99999                #密码有效期

PASS_MIN_DAYS   0                 #密码修改间隔

PASS_MIN_LEN    5                 #密码最小为5位

PASS_WARN_AGE   7                 #密码到期警告

UID_MIN                  1000        #最小的uid范围

UID_MAX                 60000        #最大的uid范围

SYS_UID_MIN               201

SYS_UID_MAX               999

GID_MIN                  1000      #最小的GID范围

GID_MAX                 60000       #最大GID范围

SYS_GID_MIN               201

SYS_GID_MAX               999

CREATE_HOME     yes

UMASK           077

USERGROUPS_ENAB yes

ENCRYPT_METHOD SHA512              #密码的加密算法

2、添加用户命令useradd

(1)useradd命令格式:useradd [选项] UserName

(2)选项: -u 指定UID  (默认500|1000开头)

-o 新建用户前不检查指定的UID是否存在(一般不要使用这个选项)

-g  GID|组名  指明用户所属的基本组 (使用比较多)

-G  指明用户所属的附加组

-d  指定某个目录作为家目录,默认/home

-s  指明用户默认的shell 默认/bin/bash  通常会指定/sbin/nologin(使用较多)

-c  “ ”  指定用户注释信息

-r  新建系统用户

-m  默认选项 创建用户家目录

-M  不创建用户家目录 (使用较多)

-D 修改用户的默认选项(修改的是/etc/default/useradd中的选项)

(3)指定选项添加用户:

useradd –u 550 –g dayi123 –G root –d /home/dayi123 –c “test user” –s /bin/bash dayi123

3修改用户属性usermod

(1)用法:usermod [选项] UserName

(2)选项:参数同useradd,部分不同参数如下:

-G GROUP1,GROUP2:新附加组,原来的附加组将会被覆盖,若要保留原有,则          要同时使用-a选项,表示追加

-l login_name:新的名字

-L 锁定指定用户

-U 解锁指定用户

-e YYYY-MM-DD:指定用户的过期日期

-f INACTIVE:指定非活动期限

-d 修改用户的家目录

4、给用户设定密码:

(1)用法:password [选项] UserName

(2)选项: -l:锁定指定用户

-u:解锁指定用户

-e:强制用户下次登录修改密码

-n mindays: 指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天开始警告

-i inactivedays:非活动期限

–stdin 可以通过管道符输的数据作为用户密码

(3)应用

修改root用户密码:passwd 回车即可修改

[root@dayi123 ~]# passwd

Changing password for user root.

New password:

BAD PASSWORD: it is based on a dictionary word

Retype new password:

passwd: all authentication tokens updated successfully.

修改普通用户密码:passwd [选项] UserName

[root@dayi123 ~]# passwd dayi123

Changing password for user dayi123.

New password:

BAD PASSWORD: it is based on a dictionary word

Retype new password:

passwd: all authentication tokens updated successfully.

通过管道符修改密码(不需要确认):echo “password@123” | passwd –stdin dayi123

[root@dayi123 ~]# echo ‘dayi123’ | passwd –stdin dayi123

Changing password for user dayi123.

passwd: all authentication tokens updated successfully.

注意:注意字符串有一个$符号 会把后面的内容给替换成变量 而这个变量为空,所以切记改密码的时候要使用单引号 强引用

5、修改用户密码的状态chage

(1)用法:chage [选项] 用户名

(2)选项:-l 列出用户详细密码状态

-d 日期:修改密码最后一次修改日期(shadow3字段)

-m 天数:两次密码修改间隔(shadow中四字段)

-M 天数:密码有效期(shadow中5字段)

-W 天数:密码过期前警告天数(shadow中6字段)

-I 天数:密码过期后宽限天数(shadow第7字段)

-E 日期:账号失效时间(shadow中8字段)

(3)应用:

要求用户在第一次登陆的时候必须强制一定要修改密码:chage -d 0 dayi123

6、删除用户userdel

(1)用法:userdel [参数] UserName

(2)参数:-f:强制删除用户,即使用户当前已登录;

-r:删除用户的同时,删除与用户相关的所有文件。

(3)应用:

删除dayi123用户及所有相关文件:userdel dayi123

7、组管理命令groupadd、groupdel、groupmod、gpasswd

(1)groupadd 新建用户组

语法:groupadd [参数] GroupName

参数: -g:指定新建工作组的id;

-r:创建系统工作组,系统工作组的组ID小于500;

应用举例:新建组dayi并指定GID为555

[root@dayi123 ~]# groupadd -g 555 dayi

[root@dayi123 ~]# cat /etc/group | grep dayi

dayi:x:555:

(2)groupdel 删除用户组(首先删除对应的用户  然后才能执行对应的组的删除操作)

语法:groupdel GroupName

(3)groupmod修改组信息

语法:groupmod [参数] GroupName

参数:-n 新的名字

-g 新的GID

修改组dayi名称为dy,修改GID为666:

[root@dayi123 ~]# groupmod -g 666 -n dy dayi

[root@dayi123 ~]# cat /etc/group | grep dy

dy:x:666:

(4)gpasswd给组新建一个密码

(5)groupmems用户主组的管理员成员

用法:groupmems [选项] [动作]

参数:-g 组  -a 用户名

-g 组  -d 删除

-g 组  -p 清空

-g 组  -l 列出组内所有的用户

应用:把test添加到dayi123用户组,并列出dayi123组内所有成员

[root@dayi123 ~]# groupmems -g dayi123 -a test

[root@dayi123 ~]# groupmems -g dayi123 -l

test

7、用户和组管理的其他命令

(1)chfn命令

1)作用:改变finger命令显示的信息

    2)用法: chfn [参数]

3)应用举例:

[root@localhost
data]# chfn

Changing
finger information for root.

Name
[root]: root

Office
[]: mgedu

Office
Phone []: 123456

Home
Phone []: 23456

Finger
information changed.

(2)chsh命令

1)作用:更换登录系统时使用的shell

    2)语法:chsh [参数]

3)应用举例:

[root@localhost
data]# chsh

Changing
shell for root.

New
shell [/bin/bash]:

(3)finger命令

1)作用:用于查找并显示用户信息

    2)语法:finger [ 参数]

3)应用举例:

[root@localhost
data]# finger

Login     Name      
Tty      Idle  Login Time  
Office     Office Phone   Host

root      root      
tty1    22:23  Mar 30 13:16 mgedu      123456

root      root      
pts/0          Mar 31 08:54
mgedu      123456

四、用户身份切换su

1、作用:进行用户身份的切换

2、语法:su – UserName  #切换用户身份,所有的环境都会切过去

su UserName     #切换用户身份,某些环境变量可能不会切换过去

su – UserName -c “date +’%Y %m'”  #以某个用户的身份执行命令但不切换用户

3、使用su的一些注意事项:

1)使用root切换到其他普通的时候 是不需要密码的

2)通用户切换到root或者切换到其他用户的时候是需要密码登录的

3)su – root 用户名可以省略 但是仅限于root用户

4)如果想切换到root用户不用输密码,可以只用visudoer编辑

xian    ALL=(ALL)       NOPASSWD: ALL1

4、应用

1)用户身份的切换

[root@localhost
data]# su – dayi123

Last
login: Fri Mar 31 10:49:16 EDT 2017 on pts/0

[dayi123@localhost
~]$ su –

Password:

Last
login: Fri Mar 31 10:51:18 EDT 2017 on pts/0

[root@localhost
~]# su –

Last
login: Fri Mar 31 12:45:12 EDT 2017 on pts/0

[root@localhost
~]# su  dayi123

2)不切换身份,以其他用户执行命令

  [dayi123@localhost
~]$ su – root -c “ls /root”

  Password:

  anaconda-ks.cfg  baoding.log 
dayi123.txt  EOF  instll.log 
sn.txt  test  tr

  [dayi123@localhost
~]$ exit

  exit

  [root@localhost
~]# su – dayi123 -c “mkdir /root/dayi123”

  mkdir:
cannot create directory ‘/root/dayi123’: Permission denied

  [root@localhost
~]# su – dayi123 -c “mkdir /tmp/dayi123”

  [root@localhost ~]# su – dayi123 -c “ls
/tmp/dayi123 -d”

  /tmp/dayi123

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,816
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,899