加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

用户及用户组管理

发布时间:2020-12-14 01:45:32 所属栏目:Linux 来源:网络整理
导读:目录: 1、useradd 2、userdel 3、usermod 4、groupadd 5、groupdel 用户管理 为什么需要有用户? 1. linux是一个多用户系统 ? ?2. 权限管理(权限最小化)? 用户:存在的目录是为了对系统中的资源做归属 密码:存在的目的是为了对用户做身份认证 ? 在用户组

目录:

1、useradd   2、userdel   3、usermod    4、groupadd   5、groupdel

用户管理

为什么需要有用户?

1. linux是一个多用户系统 ? ?2. 权限管理(权限最小化)?

用户:存在的目录是为了对系统中的资源做归属

密码:存在的目的是为了对用户做身份认证

?

在用户组中可以包含一个或者多个用户,方便对多个用户进行授权操作?

用户管理相关文件?

/etc/passwd:用户基本信息

/etc/shadow:用户密码信息、过期时间

/etc/group:用户组信息 ?ls -l

/etc/gshadow:用户组密码

/etc/default/useradd:创建用户的默认配置信息

/etc/skel/:用户家目录模板

/etc/login.defs:全局用户设定信息

/etc/passwd:?每行是一个用户,用来记录用户的基本信息,每行的格式

account:password:UID:GID:GECOS:directory:shell

?

?root ? ? : ??x ? ? ?: ???0 ? ? ? : ??????0 ? ? ? ? ? ? ? : ? ? ? ? newuser ? ?: ? ? /root ?: ?/bin/bash

用户名????密?码????用户id ??用户所在组的id ? ? ? 描述信息 ? ? ? ? ?家目录 ? ? ?shell类型 ??

1、accout:用户名 (root)

2、password:用户密码,密码位置默认是x

3、UID:用户身份id,用来唯一的标识一个用户,(第一个零)

4、GID:用户组id,用来在系统中唯一的标识一个用户组(这里指的是其基本组的组ID)(第二个零)

5、GECOS:用户描述信息,可以空白,也可以随意写(useradd -c )

6、directory:用户家目录

7、shell:用户所使用的shell类型

  /bin/bash-->可以登录系统

  /sbin/nologin-->该用户一定无法登录系统

?

密码最短为五位。?

/etc/group ?用户组信息

linux,用户一定是属于一个组的

在linux中,创建用户的时候,会自动创建一个组,组名和组id都和所创建的用户相同,而且,该用户会自动加入到这个组中

?

      c ? ? :  x  :1007:

组成:groupname:password:GID: [user1,user2.....]

groupname:组名

password:组密码

GID:组id

[user1,user2.....]:改组中的用户列表

最主要的三类文件: default ?/ passwd / useradd?

?

/etc/default/useradd

?定义创建用户默认选项的文件

# useradd defaults file???????# useradd默认文件

GROUP=100???????????????#表示可创建普通组

HOME=/home?????????????#用户的家目录建在/home中;用户家目录的默认创建地

INACTIVE=-1???????????????#是否启用帐号过期停权,-1表示不启用;宽限天数,0及以下数皆为无效数字

EXPIRE=???????????????????#帐号终止日期,不设置表示不启用;帐号失效日期(如:20081212)

SHELL=/bin/bash(默认配置可登录) ? ? ? ? ? ?#所用SHELL的类型;登录后执行的程序

SKEL=/etc/skel??????????????#用户家目录中的环境文件,默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;

CREATE_MAIL_SPOOL=yes ???#是否创建用户邮件缓冲,yes表示创建

Linux中的用户类别

1、root :超管用户,唯一可以登录系统的用户

root 管理员用户:uid 为0的用户

普通用户:自己创建的,就是可以登录系统,但是没有管理员权限的用户,uid : 1000-60000

不能登录系统的用户:

系统用户:用来运行一个程序,可以登录,但为了安全,而不是用来登录系统(sbin nologin),uid:1 - 999? ??

系统用户的特点

1.?因为不需要登录,所以 shell 类型通常为 /sbin/nologin

2.?系统用户没有家目录,因此没有模板。

3.?系统用户 id 通常是小于1000

Useradd命令

添加用户:# useradd [options] username ? ?查看# id username

# tail /etc/group ? :查看组。

options(选项):

-d,--home HOME_DIR:指定用户家目录,,不需要指定。

-c,--comment COMMENT:用户说明信息 ? ? cat

-e,--expiredate EXPIRE_DATE:指的账号的过期时间,时间格式?YYYY-MM-DD

-g,--gid GROUP:指的用户的基本组的组id(主组只有一个),默认同名组和用户名一样。

  不会自动创建,需要先建

-G,--groups GROUP1[,GROUP2,...[,GROUPN]]]:指的用户的附加组列表

-u,--uid UID:指的用户的 uid

-m,--create-home:创建用户的时候自动创建用户家目录(默认就已经使用,不需要指定)

-M:不自动创建用户家目录

-o,--non-unique:通常和-u一起使用,用来让两个用使用相同的uid,当两个用户的id相同无法创建时,可以加 -o 。

-r,--system:创建一个系统用户

-s,--shell SHELL:在创建用户的时候,指定用户的shell类型

? ? (/bin/bash/,/sbin/nologin) ? ??

  # useradd -r -s /sbin/nologin username ?(加了-s 后不能登陆,则# su username 无法执行)

?# useradd -u 1006 ken4 (系统用户也可以指定 -u )

创建一个系统用户

# useradd -s /sbin/nologin -M -r ken?

# exit

passwd命令

# passwd [[options] username]

(如果不指定用户名,那么就是修改当前用户的密码)

# cat /etc/passwd

options:

--stdin

-l:锁定用户,无法登陆。(lock)

-u:解锁用户(unlock)

-d:删除用户密码

# exit

-e:让用户密码过期

echo?“?123“?| passwd --stdin ken ? ?批量创建,自动化运行。

表示给 ken 用户设置密码123?(ken用户必须存在)

设置密码的原则

1.?长度要够

2.?密码复杂度(数字+字母+特殊符号)

Userdel命令

删除用户?userdel

userdel [options] username

options:

-r:在删除用户的时候,连同用户数据一并删除 ?删掉家目录。

创建用户组?groupadd

# groupadd [options] groupname

For:

  # groupadd cat ?(创建cat用户组),# tail /etc/group ?(查看是否创建成功,# id 只能用来查看用户,不能查看用户组)

  # groupadd dog?

  # useradd -r -s /sbin/nologin -u 660 -g cat -G dog ken9

    (-u 可以指定,-g 和-G 需要提前创建)

options:

-g GID:

-o:

删除用户组?groupdel?

# groupdel?groupname

Shadow文件详解??

记住用户的用户名及相关信息。

?zxhk: ?$6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 : ?7 ?: ??: ??: ??

第一段:用户名:??

第二段:加密后的密码??????

第三段:上次修改密码举例元年经过的天数1970年1月1日,经过多少天(如果该字段空,意味着该用户密码被禁用)

第四段:密码最短使用时间(0表示不限制)

第五段:密码最长有效期(99999表示不限制)(如果第5的值小于第四段,那么用户无法修改自己的密码)

第六段:7,,密码到期前几天开始发送告警,提示密码即将过去,请立即修改

第七段:非活动期间,密码到期后的宽限时间(登录系统的时候必须先修改密码,才能登录)

第八段:密码过期时间,是个空说明没有过期时间。

第九段:保留字段(最后一个冒号后面的内容)

常常听到:我的密码忘记或者被更动了?怎么办?
?
  有的时候会发生这样的情况,就是说,你的 root 密码忘记了!要怎么办?重新安装吗?另外, 有的时候是被入侵了, root 的密码被更动过,该如何是好?
For:
1、先建立 ken3 文件: # useradd ken3 ? ? ? 并设置密码:# passwd ken3 ??
2、查看 ken3 的密码: # tail /etc/shadow ? 确认存在加密后的 ken3 密码。
   当 # su ken7 ?,然后再 # su ken3 ?需要输入密码。然后 # exit ?退出,然后删掉 ken3 的密码。
  有两种办法:
  1、在 root 下 # vim /etc/shadow ? ?,找到 ken3 的密码,然后删掉(保留最后两个冒号结尾)。
    :wq ?保存退出。
  2、# passwd -d ken3 ? # tail /etc/shadow ? ?ken3 的密码已不存在。
3、然后 # su ken7 ? ,再 # su ken3,,此时无输入密码的提示,可直接登陆。
4、# passwd ken3,为ken3重新设置密码。
  这个时候就必须要使用到 /etc/shadow 这个资料了!我们刚刚知道密码是存在这个档案中的, 所以只要你能够以各种可行的方法开机进入 Linux ,例如单人维护模式,或者是以 live CD (KNOPPIX) 来进入 Linux 系统。之后,将硬碟顺利挂载,然后进入 /etc/shadow 这个档案中,将 root 的密码这一栏全部清空!然后再登入 Linux 一次,这个时候 root 将不需要密码 (有的时候需要输入空白字元) 就可以登入了!这个时候请赶快以 passwd 设定 root 密码即可。?

Usermod命令

usermod [options] username ? (修改用户信息)

options

-g,--gid GROUP: 更 新 使 用 者 新 的 起 始 登 入 群 组 。 群 组 名 须 已 存 在 。

-G,GROUPN]]]:?定? 义? 使 用 者 为 一 堆 groups 的 成 员 。 每 个 群 组 使 用,区 格 开 来

-u,--uid UID:?用 者 ID 值 。必 须 为 唯 一 的 ID 值?

-s,--shell SHELL:?指 定 新 登 入 shell 。 如 此 栏 留 白 , 系 统 将 选 用 系 统 预 设 shell 。

-L,--lock: 锁定用户的密码

-U : 解锁用户的密码

-l,--login NEW_LOGIN :?变 更 使 用 者 login 时 的 名 称 为 login_name 。

-e,--expiredate EXPIRE_DATE:加 上 使 用 者 帐 号 停 止 日 期 。 日 期 格 式 为 MM/DD/YY. 如十月一日: -e 10/1

-d,--home HOME_DIR:更 新 使 用 者 新 的 登 入 目 录 。

-m,--move-home:移动用户家目录至新的位置

查看有哪些组:# tail /etc/group

查看有哪些用户: # tail -5 /etc/passwd?

更改用户信息:# usermod -u 1020 -g 1010 -s /sbin/nologin -e 10/1 ken11

       # tail /etc/shadow

(在更改用户信息前,已经存在 ken11 用户,并且已设置其uid,主组,登录方式等)

    默认的过期时间是以天为单位的,如需计算,可建计算器。# bc ?安装过程:

    # yum install bc -y

    # mount /dev/cdrom /mnt

    # yum install bc -y ? ?至出现complete。

  计算过程:# bc ? ?回车。用倒数第二个冒号后的数字减去第二个冒号后的数字,回车,就是距离到期日还有多少天。 快捷键 Ctrl + C 退出。

id命令

作用:用来查看指定的用户的信息(或判断用户是否存在)

格式:id [-u|-g|-G] username

选项

-u:仅仅显示用户uid,最大为60000

-g:仅仅显示用户gid(主组)

-G:仅仅显示用户全部组id?(属组)

直接 # id username ?就可以全部显示。

su命令(switch user)?

作用:进行切换用户

格式:su -?目标用户

?

su命令和su -命令最大的本质区别就是:

前者只是切换了 root 身份,但Shell环境仍然是普通用户的 Shell;而后者连用户和Shell环境一起切换成 root 身份了。只有切换了 Shell 环境才不会出现PATH环境变量错误。su 切换成 root 用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用 su - 命令切换以后,工作目录变成 root 的工作目录了。用 echo $PATH命令看一下 su 和 su - 以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用 su - 命令

For :在 root 下# su ken8 ?,然后查看 # pwd ? 用户此时依然在 /root 目录下。# exit

    加“-” 可以彻底转换?:# su - ken8 ,然后# pwd ?用户此时在 /home/ken8 下。# exit

?

删掉 ken8 目录后怎样重新恢复 ken8 目录??

1、# rm -rf /home/ken8/

2、# su - ken8 ? 出现?“-bash” :提示用户家目录及模板已被删除。# exit ?此时,

3、# ls /etc/skel/ -la 查看隐藏文件。需要复制隐藏文件。

4、# mkdir /home/ken8 ? 重建ken8文件,

5、# cp /etc/skel/.bash* ?/home/ken8 ? ?复制 .bash 开头的所有文件到 ken8

6、# su ken8

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读