LInux用户管理

LInux用户管理,第1张

Linux 维持多个人使用同一个用户登录系统, Windows 在修改组策略的情况下,也可以多个使用同一个用户登录

远程连接Linux的方式:SSH协议

远程连接Windows的方式:RDP协议

安卓手机(Linux系统):root 刷机,使用root用户登录系统

Usage:id [选项] [用户名]

# id ,查看当前登录的用户信息

-u:查看用户的uid

-g:查看用户的gid

-G:查看用户的属组

[root@localhost ~]# id

uid=0(root) gid=0(root) 组=0(root)

[root@localhost ~]# id qiandao

uid=1001(qiandao) gid=1001(qiandao) 组=1001(qiandao)

[root@localhost ~]# id -g cls

1001

[root@localhost ~]# id -u cls

666

[root@localhost ~]# id -G cls

1001

[root@localhost ~]# id

uid=0(root) 用户id

gid=0(root) 用户组的id

组=0(root)

在系统中,不认识root,qiandao,zls

0:超级用户

uid=1001(qiandao)

gid=1001(qiandao)

groups=1001(qiandao)

[root@localhost ~]# ll /etc/passwd

-rw-r--r-- 1 root root 916 3⽉ 30 10:26 /etc/passwd

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

用户名 密码占位符 uid gid 注释信息 用户家目录 用户登录shell

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

cls: x: 666: 1001: : /home/cls: /bin/bash

wutenglan:x:777:1001:武藤兰老师是个好老师: /home/wutenglan:/bin/bash

[root@localhost ~]# ll /etc/shadow

---------- 1 root root 1088 3⽉ 30 10:50 /etc/shadow

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

qiandao :!! :18351 :0:99999:7:::

第一列:用户名

第二列:密码,!! 和 * 表示没有密码

第三列:上一次修改用户密码的时间(从1970年开始)/天

第四列:密码最少使用的天数(0 是 无限制)

第五列:密码过期天数 99999天

第六列:在密码过期的前7天,提示需要修改密码了,你的密码还有7天要过期了

第七列:密码过期后N天,强制提示修改密码

第⼋列:账户的失效时间,从1970年开始计算

第九列:保留

root:$6$iM1LuZaUuwyZrIg.$2X2Upu4KHmQoD1hzKHCzsmJqxPri9PlVDm5MYw/XdQsYgRpJaL

Iy1xWw0aDXLPePZNAcNRmfrYJrJgb6dmbu/.::0:99999:7:::

useradd

adduser

Usage:useradd [选项] [用户名]

默认情况下,在创建⽤户的时候,会创建一个和用户同名的组,并且把该用户加入该组

[root@localhost ~]# useradd zls

-u:(uid)指定uid

-g:(gid)指定gid,也可以指定组名

-G:(Group)指定附加组,如果加入多个附加组则用 逗号隔开

-M:不创建家目录

-s:(shell)指定登录的shell

-c:(comment)添加注释

-d:(directory)指定用户的家目录

-r:帮我们创建一个uid范围是201-999的系统用户,不创建家目录

userdel

Usage:userdel [选项] [用户名]

默认情况下,在删除用户的同时会把同名的用户组也删除,但是如果组内有其他用户,则不会删除组,

只删除用户

-r:删除用户的同时,删除用户的家目录,和用户的其他 邮件目录... (删除净)

usermod

Usage:usermod [选项] [用户名]

-u:修改uid

-g:修改gid

-G:修改附加组

-a:配合-G,在修改附加组的时候,起到追加效果(append)

-m:修改(迁移)家目录,必须配合 -d

-d:指定修改后的家目录

-s:修改登录的shell

-c:修改注释

-l:修改登录的用户名

-L:锁定用户(封号)

-U:解锁用户(解封)

id

whoami

1.什么是用户?

能够正常登录系统的,可以管理系统还有可以管理系统中的进程或者程序

02.Linux与windows系统的用户有什么区别?

linux          支持多用户同时登录

windows    默认不支持多用户同时登录

03.使用什么命令可以查看用户是否存在?

[root@oldboy ~]# id oldboy

[root@oldboy ~]# who

[root@oldboy ~]# whoami

root

04.跟用户相关的配置文件都有哪些?分别存放的是什么?

用户存放的信息文件  /etc/passwd

用户存放的密码文件 /etc/shadow

用户组信息文件 /etc/group

05./etc/passwd文件以':' 为分割符, 分为7个字段,请说明一下每个字段的具体含义?

字段名称              注释说明

1.用户名称            //用户的账号名称

2.密码占位符        //存放账户的口令,暂用x表示,密码保存在/etc/shadow

3.用户的UID        //用户标识号

4.用户基本组GID      //组标识号

5.用户注释          //用户详细信息

6.用户家目录        //root家目录是/root普通用户家目录存在/home/username(可自定义)

7.用户登录Shell    //用户登录Linux使用的shell  #cat /etc/shells

06./etc/shadow文件以':' 为分割符, 分为9个字段,请说明一下每个字段的具体含义?

字段名称                      注释说明

1.用户登陆名            //用户的账号名称

2.加密后的密码            //用户密码,这是加密过的口令(未设密码时为!!)

3.最近一次密码更改时间    //从1970年到最近一次更改密码时间之间过了多少天

4.密码最少使用几天        //密码最少使用几天才可以更改密码(0表示无限制)

5.密码最长使用几天      //密码使用多少天需要修改密码(默认99999永不过期)

6.密码到期前警告期限    //密码过期前多少天提醒用户更改密码(默认过期提前7天警告)

7.密码到期后保持活动的天数 //在此期限内, 用户依然可以登陆系统并更改密码, 指定天数过后, 账户被锁定

8.账户到期时间        //从1970年起,账户在这个日期前可使用,到期后失效。

9.标志                        //保留

07.什么是用户的UID?

用户的标识符  它和用户一一对应关系

User Identification  的缩写

08.不同的用户对应UID号范围是多少?

0            超级用户

1-200      系统用户

201-999  系统用户  (不需要登录)

1000+      普通用户

09.新建用户user1、user2,用户user2不允许登陆到系统中。

[root@oldboy ~]# useradd user1

[root@oldboy ~]# useradd user2 -s /sbin/nologin

10.创建普通用户oldboy,其ID号为789

[root@oldboy ~]# useradd -u  789 oldboy

[root@oldboy ~]# id oldboy

uid=789(oldboy) gid=1003(oldboy) groups=1003(oldboy)

11.创建虚拟用户test,其ID号为666

[root@oldboy ~]# useradd -u 666 -s /sbin/nologin test

12.修改oldboy用户的ID号,修改为777

[root@oldboy ~]# usermod -u 777 oldboy

[root@oldboy ~]# id oldboy

uid=777(oldboy) gid=1003(oldboy) groups=1003(oldboy)

13.修改用户test的命令解释器,使其可以登录到系统。

[root@oldboy ~]# usermod  -s /bin/sh test

[root@oldboy ~]# su - test

Last login: Tue Mar 31 15:09:39 CST 2020 on pts/3

[test@oldboy ~]# whoami

test

14.删除用户user1.不删除其家目录。

[root@oldboy ~]# userdel user1

[root@oldboy ~]# ll /home/

total 0

drwx------ 3 oldboy oldboy 78 Mar 31 15:06 oldboy

drwx------ 3 test  test  99 Mar 31 15:16 test

drwx------ 3  1001  1001 78 Mar 31 15:04 user1

drwx------ 3 user2  user2  78 Mar 31 15:05 user2

drwx------ 3 www    www    78 Jan  1  2021 www

15.删除用户user2,不保留其家目录。

[root@oldboy ~]# userdel -r user2

16.给oldboy用户创建一个密码为123,并尝试登录(两种方法实现)

[root@oldboy ~]# passwd oldboy

[root@oldboy ~]# echo "123" |passwd --stdin oldboy

17批量创建10个用户,前缀是你的姓,后缀为数字序列,比如qian1等。

大佬的方法

#  sed  后项引用

# | xargs 

#  awk 

[root@oldboy ~]# cat aa.sh

#!/bin/bash

read -p "请输入你的用户名 " ming

read -p "请输入这个用户名创建的次数  " shu

for i in `seq $shu`

do

useradd $ming$i

done

小弟的方法

for

[root@oldboy ~]# for i in `seq 10`do useradd qian$idone

18.默认情况下管理员创建了一个用户,就会在()目录下创建一个用户主目录

/home

19.如何检查系统中存在oldboy用户,并且显示用户id信息

[root@oldboy ~]# id oldboy

uid=777(oldboy) gid=1003(oldboy) groups=1003(oldboy)

20.创建gid为666,名字为www的用户组

[root@oldboy ~]# groupadd -g 666 www

21.创建uid为666,gid为666,名字为www的用户

[root@oldboy ~]# useradd -u 666 -g 666 www

[root@oldboy ~]# useradd -u 666 -g 666 www

useradd: group '666' does not exist

22.创建uid为888,注释信息为"虚拟用户",不创建家目录,不能登录系统,名字为oldboyedu的用户

[root@oldboy ~]# useradd -u 888 -c "虚拟用户" -M  -s /sbin/nologin oldboyedu

23.假设公司研发部的用户yanfa和dev属于组yf,财务部的用户caiwu和money属于组cw,根据要求创建用户及组。

[root@oldboy ~]# groupadd yf

[root@oldboy ~]# groupadd cw

[root@oldboy ~]# useradd yanfa -g yf

[root@oldboy ~]# useradd dev -g yf

[root@oldboy ~]# useradd caiwu -g cw

[root@oldboy ~]# useradd money -g cw

[root@oldboy ~]# id yanfa

uid=1021(yanfa) gid=1024(yf) groups=1024(yf)

[root@oldboy ~]# id caiwu

uid=1023(caiwu) gid=1025(cw) groups=1025(cw)

24.报如下错误是什么原因,并怎么解决

(1)

[root@oldboy ~]# id qzg

id: qzg: no such user

没有这个用户

(2)

[root@oldboy ~]# useradd aaa -s /sbin/nologin

useradd: group aaa exists - if you want to add this user to that group, use -g.

aaa用户组已经存在

(3)

[root@oldboy ~]# su - qzg1

This account is currently not available.

这个用户无法登录系统

25.oldboy8用户的用户名修改成oldboy888

[root@oldboy ~]# usermod -l oldboy888 oldboy8

26.创建zls用户,指定UID5001,基本组students 附加组sa,dba 注释信息:one newB user, 登陆的shell:/bin/bash

曾导博客上的题

27.linux系统存放所有用户密码信息的文件是?

/etc/shadow

28.存放用户账户信息的配置文件是?

[root@oldboy ~]# ll /etc/default/useradd

-rw-r--r--. 1 root root 119 Nov  5  2016 /etc/default/useradd

[root@oldboy ~]# ll /etc/login.defs

-rw-r--r--. 1 root root 2028 Nov  5  2016 /etc/login.defs

/etc/passwd

29.建自己姓名全拼用户,UID5000,基本组students,附加组sa,注释信息:2020 new student,登陆shell:/bin/bash

[root@oldboy ~]# groupadd students

[root@oldboy ~]# groupadd sa

[root@oldboy ~]# useradd -u 5000 -g students -G sa -c "2020 new student" -s /bin/bash qianzhigang

[root@oldboy ~]# cat /etc/passwd|tail -1

qianzhigang:x:5000:1027:2020 new student:/home/qianzhigang:/bin/bash

[root@oldboy ~]# id qianzhigang

uid=5000(qianzhigang) gid=1027(students) groups=1027(students),1028(sa)

30.建用户useroldboy,附加组bin和root,默认shell为/bin/bash,注释信息"user1_info"

[root@oldboy ~]# useradd -G bin,root -c "user1_info" -s /bin/bash  useroldboy

[root@oldboy ~]# id useroldboy

uid=5001(useroldboy) gid=5001(useroldboy) groups=5001(useroldboy),0(root),1(bin)

31.新建一个用户jack,指定uid为330

[root@oldboy ~]# useradd -u 330 jack

(1)修改jack的uid为666,用户名改为jacky

[root@oldboy ~]# usermod -u 666 jack

[root@oldboy ~]# id jack

uid=666(jack) gid=5002(jack) groups=5002(jack)

[root@oldboy ~]# usermod  -l jacky jack

[root@oldboy ~]# id jacky

uid=666(jacky) gid=5002(jack) groups=5002(jack)

(2)把jacky的密码设置为123

passwd  jacky

[root@oldboy ~]# echo "123"| passwd --stdin jacky

(3)切换控制台,用jacky帐户登录系统

[root@oldboy ~]# su - jacky

[jacky@oldboy ~]#

(4)换回控制台,用命令将jacky锁定,验证jacky能否再次登录系统,解锁后再次尝试能否登录系统

[root@oldboy ~]# usermod -L jacky

[root@oldboy ~]# usermod -U jacky

32.迁移jacky用户的家目录到/tmp/jacky

[root@oldboy ~]# usermod -md /tmp/jacky  jacky

33.批量创建10个用户,用户名为oldboy1 oldboy2 oldboy3 .... oldboy10

[root@oldboy ~]# for i in `seq 10`do useradd oldboy$idone

[root@oldboy ~]# echo kkk{1..10}|xargs -n1|sed -r 's#(.*)#useradd \1#g'|bash

对于Linux管理者来说,“帐号管理”是再也普通不过的一个环节了,但每次都要去查一大本的手册实在是很浪费时间。我还是老老实实地花点心思把这些常用的功能都整理成一份文档,方便以后的使用和学习,以后也都会继续这样做下去。

本文的所有案例与说明都是基于Ubuntu 16.04.3 LTS 64位 *** 作系统,如果你的 *** 作系统与我的不一样,可能会出现不一样的结果。但Linux的原理都是通用的,善于使用man可以帮助你更好的管理你的 *** 作系统。

上图一共列出了9个相关文件,但这里我只重点讲解前三个文件,也即是 /etc/passwd、/etc/shadow 与 /etc/group。

1、/etc/passwd

User account information. --(明文的)用户账号信息

这个文件每一行都代表一个帐号,有几行就代表有几个帐号在你的系统中!不过需要特别注意的是,里面很多帐号本来就是系统正常运行所必须的,我们可以简称它为系统帐号。这些帐号都是你不能随便删除的!

通过查看passwd(5)手册可以查看/etc/passwd的文件结构:

文件结构说明:

“/etc/passwd” 第二项的内容说明

2、/etc/shadow

Secure user account information. -- 安全加密的用户账号信息

通过查看shadow(5)手册也可以查看/etc/shadow的文件结构:

如shadow(5)中所述,这个文件中被 “:” 分隔的每项含义如下。

3、/etc/group

Group account information.  -- 组信息

通过查看group(5)手册也可以查看/etc/group的文件结构:

如group(5)中所述,这个文件中被“:”分隔的每项含义如下。

注意:

“/etc/gshadow” 为 “/etc/group” 提供了与 “/etc/shadow” 相似的功能,但没有被真正地使用。

4、/etc/gshadow

Secure group account information. -- 安全加密的组信息

5、/etc/default/useradd

Default values for account creation.  -- 创建用户时的默认设置

6、/etc/skel/

Directory containing default files.  -- 用户主目录的默认内容

7、/etc/subgid

Per user subordinate group IDs.

8、/etc/subuid

Per user subordinate user IDs.

9、/etc/login.defs

Shadow password suite configuration.

1、添加用户 -- useradd

useradd -- create a new user or update default new user information.

常用参数:

例1:最简单的例子

例2:创建一个可以使用的帐号

例3:查看useradd默认设置

使用useradd创建用户时还会参考文件/etc/login.defs的设置,比如UID/GID的指定数值、用户主文件夹设置值、用户删除与密码设置值等,这里也不做深入讨论了。

2、用户密码管理 -- passwd

passwd - change user password

常用参数:

3、用户密码管理 -- chage

chage - change user password expiry information

4、用户信息修改 -- usermod

usermod - modify a user account

当然,以上的修改你也可以通过手动修改相关的配置文件来达到一样的目的。

5、删除用户 -- userdel 

userdel - delete a user account and related files

注意:

1)一般而言,该帐号如果只是暂时不启用的话,那么将/etc/shadow里面帐号失效日期(第八字段)设置为0就可以让该帐号无法登录,但所有相关的数据都会留下来。使用userdel的时候通常是你真的确定不要该用户在主机上面用任何数据了!

2)如果想要完整地将某个帐号删除,最好可以执行userdel -r username之前,先以“find / -user username”查出整个系统内属于username的文件,然后再进行删除。

1、初始用户组(initial group)与 有效用户组(effective group):

在/etc/passwd里面的第四列有一个所谓的GID,它就是“ 初始用户组 ”。也就是说,当用户登录系统,立刻就拥有这个用户组的相关权限的意思。

有效用户组:即帐号当前(实时)所使用的用户组。

次要用户组:次要用户组就是除了用户的初始用户组外的其它所属组,在/etc/group的最后一个字段中所设置,可以有多个(多个用逗号','隔开)。

使用usermod -g可以修改初始用户组,而使用usermod -G则可以修改次要用户组。

例1:修改用户次要用户组

例2:有效与支持用户组的查看

在这个输出的信息中,可知道nosee这个用户同时属于nosee及users这两个组,而且,第一个输出的即为“ 有效用户组 ”。也就是说,上面例子中的有效用户组为nosee。

2、有效用户组的切换 -- newgrp

上面例子中,nosee的有效用户组从nosee转变成了users。

现在我们来深入讨论下newgrp这个命令,这个命令可以更改目前用户的有效用户组,而且是另外以一个新的shell来提供这个功能。因此如果你想要回到原本的环境中,只需要输入exit即可。

3、新增用户组 -- groupadd

groupadd - create a new group

常用参数:

4、用户组参数修改 -- groupmod

groupmod - modify a group definition on the system

常用参数:

注意:不要随意改动GID,容易造成系统资源的错乱。

5、删除用户组 -- groupdel

groupdel - delete a group

注意,只有在/etc/passwd内没有任何用户使用该用户组的作为初始用户组的时候,才可以成功删除。

6、用户组管理员功能 -- gpasswd

gpasswd - administer /etc/group and /etc/gshadow

1)系统管理员(root)的常用参数

2)用户组管理员(Group administrators)的常用参数

1、su

su - change user ID or become superuser

su是最简单的身份切换命令了,它可以进行任何身份的切换。

常用参数:

注意:

1)这个su的用法当中,有没有加上“-”差很多的,转为涉及login-shell与not-login shell的变量读取方法。即想要完整的切换到新用户的环境,可以利用“su - username”或“su -l username”。

2)使用root切换到任何用户时,都不需要输入密码

3)当从其它用户切换到root用户时都必须输入root的密码,这样root的密码就很容易流传出去,这是很不妥当的,所以才会有sudo这个命令的出现。

2、sudo

sudo, sudoedit — execute a command as another user

sudo的执行仅需要自己的密码,甚至可以设置不需要密码即可执行sudo。由于sudo可以让你以其他的用户身份执行命令(通常是root的身份),因此并不是所有人才能执行sudo,而是仅有/etc/sudoers内的用户才能够执行sodu这个命令。

/etc/sudoers文件内容如下:

常用参数:

例:使用nosee的身份在/home/nosee/目录下新建一个test文件

sudo的执行流程:

1)当用户执行sudo时,系统于/etc/sudoers文件查找该用户是否有执行sudo的权限;

2)若用户具有可执行sudo的权限后,便让用户输入自己的密码来确认;

3)若密码输入成功,便开始进行sudo后续接的命令(但root执行sudo时不需要输入密码);

4)若欲切换的用户与执行者身份相同,那也不需要输入密码。

因为/etc/sudoers文件有一定的规则,所以我们一帮不直接用vi去编辑。一般,我们都是使用visudo来修改这个文件。

3、visudo

因为/etc/sudoers是有语法的,如果设置错误那会造成无法使用sudo的不良后果,因此才会使用visudo去修改。

一般来说,visudo的设置方式有几种简单的方法,正面我们以几个简单的例子来说明:

1)单一用户可以进行root的所有命令与sudoer文件语法

例:让用户nosee可以使用root的所有命令

2)利用用户组及免密功能处理visudo

例:让nosee用户组可以使用root的所有命令,并且不需要输入密码

注意:用户组的表示只需要在前面加一个百分号%即可,NOPASSWD则是免密的关键字。

3)有限制的命令 *** 作

例:让user1用户仅能使用passwd这个命令帮root修改其他用户的密码

注意:最后一个参数一定要用绝对路径才行,否则visudo会出现语法错误。

但这里有个可怕的地方,就是用户user1竟然也可以去修改root的密码了,这是不应该允许发生的,为了避免上述的问题,应该使用下面的这种配置:

上面参数的意思是,用户user1可以执行“passwd 任意字符串”,但是“passwd”与“passwd root”两个命令除外。

4)通过别名设置visudo

5)sudo的时间间隔问题

两次执行sudo的间隔时间在5分钟内,那么再次执行sudo时就不需要再次输入密码。

6)sudo搭配su的使用方式

很多时候我们需要大量执行很多root的工作,所以一直sudo觉得麻烦。这里有一个变身root用户的办法,而且还不会外泄root密码,前提是你要非常信任你将要为他们做此次设置的用户。

1、查看用户当前所用的shell

1)实时查看当前进程中使用的shell种类:推荐

2)最常用的查看shell的命令,但不能实时反映当前shell

3)环境变量中shell的匹配查找

4)口令文件中shell的匹配查找

2、强制踢出已登录用户

或也可以给他发送一条信息。

3、adduser

adduser也可以用于用户的添加,感觉兴趣的同学可以自行去查阅相关的资料。

1、《鸟哥的Linux私房菜基础学习篇》-- 鸟哥

2、  Debian官方参考手册

如发现有写得不对或不好的地方非常欢迎到评论区指出与交流,感谢阅读!    

——《完》

一台Centos 6.8 安装ldap server

一台Centos 6.8安装ldap client

本环境中没有使用dns ,由hosts文件代替

<pre>

echo '192.168.85.129dev.com' >>/etc/hosts

</pre>

<pre>

service iptables stop

chkconfig iptables off

</pre>

<pre>

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

</pre>

<pre>

useradd test01

echo 'abc'| passwd --stdin test01

</pre>

<pre>

yum -y install httpd php php-ldap php-gd -y

rpm -qa httpd php php-ldap php-gd

</pre>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6243580.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存