linux 用户及密码

linux 用户及密码

涉及文件,及各个文件内容详解

涉及文件:
/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow

/etc/passwd:

属性:
-rw-r--r-- 1 root root 1787 Nov 24 01:12 /etc/passwd

内容:
root:x:0:0:root:/root:/bin/bash
... ...

以":"分割为7部分

root x 0 0 root /root /bin/bash
用户名 密码,为了安全,对应存储在shadow里 UID,用户标识号 GID 用户组标识号 用户描述,finger时显示 home目录 默认shell程序

用户不能登录设置:
/usr/sbin/nologin和/bin/false

默认shell 文件类型 文件大小 切换时表现 用户权限(待详细确认)
/usr/sbin/nologin ELF 64-bit LSB shared object 8.0k 提示 This account is currently not available 可以使用一些系统服务,比如ftp服务,当nologin加入了/etc/shells中时
/bin/false ELF 64-bit LSB executable 28k 无提示 不能使用系统服务
/bin/正常shell以/bin/bash为例 ELF 64-bit LSB executable 1016k 登录到相应的shell窗口 正常使用

nologin:it created in 4.4 BSD(1990)
bin/false: 一直存在
推荐使用nologin来拒绝用户登录。

  • 默认账号
    官方ubuntu的16.04 iso发行版中passwd文件中存一些默认账号
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
syslog:x:104:108::/home/syslog:/bin/false
_apt:x:105:65534::/nonexistent:/bin/false

系统默认存在的账号(root、sys、nobody、bin、daemon等),已经是很多安全审计的讨论内容了;
如果系统账号默认可以登录(也就是默认的shell没有配置为/bin/false或/usr/sbin/nologin),则存在安全漏洞。

方便管理员更方便的管理(在etc/passwd配置后,查看文件所有权时,可以清楚看到所有者名字而非UID/GID)
默认账号linux规范,第21章

a. The bin User ID/Group ID is included for compatibility with legacy applications. New applications should no longer use the bin User ID/Group ID. bin账号主要是为了兼容旧的程序而保留的账号
b. The daemon User ID/Group ID was used as an unprivileged User ID/Group ID for daemons to execute under in order to limit their access to the system. Generally daemons should now run under individual User ID/Group IDs in order to further partition daemons from one another.

这些账号是LSB(linux标准库)中指定的用户,除了root,bin,daemon以外,它们几乎都不必要存在
详细讨论见:https://access.redhat.com/discussions/685053

/etc/shadow

属性:
-rw-r----- 1 root shadow 1588 Nov 22 22:18 /etc/shadow

内容:
root:$6$iqK9aFkM$0WQdYSmfTKVumS3CeIdoDTnsL6MOoe5nvCHRYvVkSiJyNZjw4.krK/buDtTYRooOTuys5iRh3JMSmw0MunPwF/:17743:0:99999:7:::

以":"分割

root **** 17743 0 99999 7 null null null
login name encrypted passwd date of last passwd change minimum passwd age maximum passwd image passwd warning period passwd inactivity period account expiration date reserved field
用户名 密码密文 最近更改密码的时期,相交于1970 这次能修改的最小时间,相较于上一次修改 超过这个时间后用户就需要修改密码为null,不需要更改密码,没有警告提示 密码到期前多久进行提示 密码静止时间;为空则不会强制静止 账号失效时间,为空代码永远不会失效 为未来保留字段

默认的配置项存在/etc/login.defs

/etc/group

属性:
-rw-r--r-- 1 root root 869 Nov 22 22:18 /etc/group

内容:
root:x:0:

以":"分割

root x 0 null
group name passwd GID user list
群组名称 密码 群组ID 群组的成员列表,已,分割

/etc/gshadow

与/etc/shadow相似,保存着群组的秘钥密码。


其他

添加账号

工具创建

存在两种方式:useradd和adduser:

useradd is native binary compiled with the system. But, adduser is a perl script which uses useradd binary in back-end.
adduser is more user friendly and interactive than its back-end useradd. There’s no difference in features provided.

useradd 利于自动化脚本编写;默认只创建用户,无密码,无用户空间,无默认shell;具体需要添加参数进行设定。
adduser 交互式添加用户;(发行版中不一定都存在,比如SuSE、)

tips:useradd -p指定密码时,需要是加密的;加密的密码可以使用openssl passwd -stdin进行生成。
-p, --password PASSWORD encrypted password of the new account。

手动创建用户
  1. 添加群组
vim /etc/group
添加
1234:x:1009:1234
  1. 建立1234用户属性
vim /etc/shadow
添加
1234:x:1009:1009:testing:/home/sunrise:/bin/bash
  1. 同步/etc/passwd与/etc/shadow
    pwconv
  2. 创建密码
    输入passwd 1234,进行交互式设置密码
  3. 创建跟目录
cp -r /etc/skel /home/sunrise
chown -R 1234:1234 /home/sunrise

到此完成手创建,可以使用id 1234或者finger 1234查看用户详细信息。

你可能感兴趣的:(Linux)