问题:user版本增加su 指令以后,允许切换root用户,但是,没有设置密码,这样访问不安全。
需要增加root用户密码。
一、Linux账户管理
1.1 文件和权限
Linux一切皆文件。文件和目录都有相应的权限,权限定义的基本格式:
文件类型 所有者权限 用户组权限 其他用户权限
drwxr-xr-x 3 root root 4096 Aug 17 14:54 toolchain
drwxr-xr-x 19 root root 4096 Aug 17 14:54 tools
-rw-r--r-- 1 root root 21089672 Aug 18 16:06 u28081802.log
drwxr-xr-x toolchain 文件类型是d (文件夹) 所有者权限 rwx: 可读(r)可写(w)可执行(x),用户组权限r-x:
可读(r)可执行(x)。文件所有者是root, 用户组是 user。更加详情内容可以参考:
一文带你学习Linux 中的文件权限概念和相关命令 - 知乎 (zhihu.com)
1.2 Linux账户系统
账号用户管理登录用户,实现访问控制。
1.2.1 id命令
id命令用于查看用户和用户所在的组信息。
安卓系统查看系统用户信息:
lahaina:/ # id
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),1078(ext_data_rw),
1079(ext_obb_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid) context=u:r:su:
s0
lahaina:/ # id root
uid=0(root) gid=0(root) groups=0(root) context=u:r:su:s0
lahaina:/ #
root用户uid=0, 组id=0, 所在的组root, SELinux策略上下文: u:r:su:s0
已经内置了root用户。还有其他的系统用户,shell, adb等。
lahaina:/ # id shell
uid=2000(shell) gid=2000(shell) groups=2000(shell) context=u:r:su:s0
lahaina:/ #
1.2.2 useradd命令
lahaina:/ # id root
uid=0(root) gid=0(root) groups=0(root) context=u:r:su:s0
useradd 命令用于创建新的用户
命令格式:useradd [-选项] 用户名
常用选项:
-u 指定用户UID,root用户的uid=0
-d 指定用户家目录,一般用户目录, /home/[用户名], 可以通过cd ~到当前用户的家目录
-c 用户描述信息
-g 指定用户基本组, 用户组信息,root的用户组
-G 指定用户附加组
-s 指定用户的shell
#创建用户指定用户UID、描述信息、附加组
[root@localhost ~]# useradd -u 1600 -c yunwei -G test xiaozhang
[root@localhost ~]# id xiaozhang
uid=1600(xiaozhang) gid=1600(xiaozhang) 组=1600(xiaozhang),1401(test)
#/sbin/nologin :禁止用户登录系统
[root@localhost ~]# useradd -u 1800 -c test -s /sbin/nologin user8
user8:x:1800:1800:test:/home/user8:/sbin/nologin
更多信息请参考博文:
https://zhuanlan.zhihu.com/p/561408502
查看用户家目录
root@ubuntu:/etc/skel# cd ~
root@ubuntu:~# pwd
/root
例如创建一个用户 test, 用户uid=4000, 组 test。
注意:如果用户组不存在,请先创建用户组
root@ubuntu:~# groupadd -g 4000 test
root@ubuntu:~# useradd -u 4000 -g test test
root@ubuntu:~# id
uid=0(root) gid=0(root) groups=0(root)
用户创建以后,使用id查看不存在,因为id默认只能查看系统用户。
id test能看到用户test信息。
root@ubuntu:~# id test
uid=4000(test) gid=4000(test) groups=4000(test)
1.2.3 groupadd命令
groupadd [-g gid [-o]] [-r] [-f] 组名
-g gid group’s ID 值 .除非使用 -o,
-o--non-unique 参数不然该值必须是唯一, 不可相同.数值不可为负。预设为最小不得小于500而逐次增加。 0~999 传统上是保留给系统账号使用。
-r,--system 此 参数是用来建立系统账号。的 UID 会比定义在系统档上/etc/login.defs. 的 UID_MIN 来的小.注意 useradd 此法所建立的账号不会建立使用者目录,也不会在乎纪录在 /etc/login.defs. 的定义值 . 如果你想要有使用者目录须额外指定。 -m 参数来建立系统账号。 这是 RED HAT 额外增设的选项。它会自动帮你选定一个小于999 的 gif 不需要 再加上 -g 参数。这是RED HAT 额外增设的选项。
-f,--force 新增一个已经存在的群组账号,系统会出现错误讯息然后结束groupadd .如果是这样的情况,不会新增这个群组(如果 是这个情况下,系统不会再新增一次)也可同时加上 -g,--gid GID选项当你加上一个gid,此时 gid 就不用是唯一值,可不加 -o 参数,建好群组后会显结果 .
例如:创建一个分组 test, gid=4000
root@ubuntu:~# groupadd -g 4000 test