blog:linux_system_manage:user_and_group

linux user and group

useradd 添加用户

useradd OPTIONS UserName

  1. D, –defaults


这些默认值由/etc/default/useradd定义
	只使用-D选项时,useradd将显示当前的默认值. -D和其他选项配合使用时,useradd将为指定的选项更新默认值(也会更改/etc/default/useradd)
	

例如: 查看useradd默认值

$ useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

有效的“更改默认值”选项有:

-b, –base-dir BASEDIR, 对应HOME选项 新用户主目录的路径前缀, 如果创建新用户时没有使用-d 选项,那么用户的主目录名为: $(BASEDIR)/用户名称 -e, –expiredate EXPIRE_DATE, 对应EXPIRE

  禁止此用户账户的日期,

-f, –inactive INSTANCE

  密码过期到账户被禁用之前的天数。
  

## 其他参数

-d, –home HOMEDIR 使用HOMEDIR作为用户登录的主目录. 默认值是将用户名附加到BASEDIR后面, BASEDIR由/etc/default/useradd中的HOME定义

  也可以用useradd -D查看默认一些默认参数的值
  目录不一定要存在, HOME_DIR会在需要时被创建

例:

  sudo useradd -d /home/test test

-m

  如果用户主目录不存在,则创建用户主目录. /etc/skel 中的文件和目录将会被复制到主目录。
  如果没有设置此选项,并且CREATE_HOME没有设置为yes, 则不会创建主目录.
  

-M

  不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes

-g, –gid GROUP

  指定用户组,这个组名必须存在, 如果没有指定,useradd的行为将依赖于/etc/login.defs
  文件中的USERGROUPS_ENAB参数,如果设置为了yes(或者在命令行上指定了-U/--user-group),将为用户创建一个组,组名和登录用户相同

-G –groups GROUP1[,GROUP2,…[,GROUPN]]

  指定用户还属于的附加组列表,每个组都用逗号隔开,中间没有空格. 这些组受到了 -g 选项
  对给定组同样的限制.默认情况,用户只属于初始组

-c, –comment COMMENT

关于用户的描述信息,将会出现在/etc/passwd中的一个一个字段中

-s, –shell SHELL

可以指定用户登陆的shell

-k, –shel SHEL_DIR

可以指定shel目录,该目录的文件和目录将会被复制到用户主目录, 这个选择只有在指定了-m(或 --create-home)选项时才有效

例如:

  sudo useradd -M -c "samba user" smb
  

## /etc/passwd

系统中所有用户的账号信息都保存在/etc/passwd中。

基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。 在早期的UNIX操作系统中,用户账号的密码信息也是保存在passwd文件中的,不法用户可以获取密码字串进行暴力破解, 这样一来账号安全就存在一定的隐患。因此后来将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符“x”。

格式: passwd文件的每一行内容中,包括了七个用冒号“:”分隔的配置字段

  • 第一字段:用户账号的名称。
  • 第二字段:经过加密的用户密码字串,或者密码占位符“x”。
  • 第三字段:用户账号的UID号。
  • 第四字段:所属基本组账号的GID号。
  • 第五字段:comment信息,可填写与用户相关的说明信息。
  • 第六字段:主目录,即该用户登录后所在的默认工作目录。
  • 第七字段:登录Shell等信息,用户完成登录后使用的Shell。

例如: smb:x:1001:1001:samba user:/home/smb:/sbin/nologin

shadow文件又被称为“影子文件”,其中保存有各用户账号的密码信息,因此对shadow文件的访问应该进行严格限制。 默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件中的内容。

/etc/shadow文件的每行由9个字段组成,以“:“作为字段分隔符。每个字段的说明:

  • 用户名(login name)。
  • 加密后的密码(形如:$1$2eWq10AC$NaQqalCk3InEPBrIxjaJQ1)。 如果密码是”“或”!”,则表示这个不会用这个帐号来登录(通常是一些后台进程)。 密码最后修改时间,使用UNIX时间(从1970年1月1日起计算的天数)。
  • 密码最短有效天数。如果是0,表示随时可修改密码。如果是N,表示N天后才能修改密码。
  • 密码最长有效天数。如果设置为N,则表示N天后必须更新密码。设置为99999通常表示无需更新密码。
  • 提前多少天警告用户口令即将过期,默认值为7。
  • 密码过期的宽限时间,在密码过期之后的多少天内禁用此用户。
  • 帐号失效时间。也是UNIX时间戳格式。默认值为空,表示账号永久可用
  • 最后一个字段是保留字段。

例如: smb:$6$y7PBUv3X$c3g/tGk2QcrKD1VYu6nSRSrHY9kUWEAWbk4r1uMiikql9VW5By0vjlppzRlMAe8tD.zXHkLkt4ug6N1L4jY4g.:16684:0:99999:7:::

shadow文件中的密码格式:

$id$salt$encrypted

id表示hash 算法

ID 算法
$1$ MD5
$2a$ Blowfish
$5$ SHA-256
$6$ SHA-512

# 删除账户 useradd

userdel OPTIONS UserName

-r, –remove

  用户主目录和用户邮箱也将一起被删除

usermod改变用户属性

usermod OPTIONS UserName

选项:
-a, –append 添加用户到追加到某些组中,仅与-G选项一起使用。 -G, –groups 指定要添加到组到列表。与-a一起使用. -c, –comment 修改/etc/passwd文件中第五个字段关于账户的描述:comment -d, –home 修改用户的主目录,如果指定了-m, 则当前主目录的内容将会被移动到新的目录中,如果目录不存在,则创建。 -m, –move-home 将用户的主目录移动到新的主目录,必须和-d组合使用才有效果

例如将smb用户加入到组caodan中:

  sudo usermod -aG caodan smb

uid=1001(smb) gid=1001(smb) 组=1001(smb),1000(caodan)

组管理

/etc/group中的格式如下

group name : password : GID : user lists

例如:

smb:x:1001:
nm-openconnect:x:126:
git:x:1002:
mysql:x:127:

新建一个名为wireshark的组

  groupadd wireshark
  

$ grep -nr “wireshark” /etc/group

$ 72:wireshark:x:1003:

option:

-g 指定gid, 但是不能与已有的gid重复 -o 如果同时指定了-g, 可以使用一个已经存在的GID

添加一个系统组==

groudadd -r 组名

系统组与普通组的区别:

/etc/login.defs

系统组的GID 会比/etc/login.defs. 的GID_MIN来的小 。

例如 UID_MIN 为 1000

  • blog/linux_system_manage/user_and_group.txt
  • 最后更改: 2022/01/09 23:01
  • 127.0.0.1