像Windows一样,Linux系统同样可以创建不同用户登录系统,在创建用户账户时,Linux系统会分配给该用户唯一ID(UID),同时设置登录名,而UID与登录名之间是一种映射关系,类似于哈希的键值对。
像之前所说的,可以使用env查看相关信息。
printenv USERNAME命令查看登录名;
echo $UID命令查看用户的UID(UID数字形式);
cat/etc/passwd | grep $USERNAME命令查看登录名及其对应的UID等信息。
了解文件文件权限之前,有必要先补充一些管理系统的文件,了解这些系统管理文件,有助于理解文件权限的作用范围及其含义。
用户名→用户登录密码→用户账户ID→用户组ID→用户账户描述(用户全名,公司,公司电话,家庭电话等)→用户家路径→用户所使用的默认shell
/etc/shadow文件包含9个字段:1:2:3:4:5:6:7:8:9,这9个字段的含义如下(先有个印象,以后需要再深入):
1. 用户名(登录名)
2. 加密后的密码
3.自上次修改密码后已经过去的天数(从1970年1月1日起算)
4.多少天后才能更改密码
5.多少天后必须更改密码
6.密码过期前提前多少天提醒用户修改密码
7.密码过期后多少天禁用用户账户
8.用户账户被禁用的日期(以从1970年1月1日到当时的天数表示)
9.预留字段
useradd命令创建新用户名时,会默认自动把用户名设置成home路径下的目录(如用户名为dino,则相应的家目录为/home/dino),这是在创建后默认形成的。同时,也会给新用户添加启动文件和配置文件。
下面一个个参数示例演示创建新用户test后的相应改变。
sudo useraddtest
可以看到,多了新用户test,但是备注字段是空的。虽然/home/test存在/etc/passwd文件内,但是访问不了的,提示目录不存在,原因是没有加-m参数。
sudo useradd-m test
加了-m参数就可以了。
sudo useradd-m -c mycomments test
-c参数添加备注字段。
-d参数指定主目录名字:
sudo useradd -m -d /home/fred test
可以看到,-d参数指定了家目录的路径,已经不是默认的/home/test了,但是用户名(登录名)还是test。
-e参数用yyyy-mm-dd格式指定用户过期日期,缺省(也就是不设置的话)表示永不过期。
-f参数表示用户密码过期多少天后禁用该用户,0表示密码一旦过期立即禁用,-1表示不使用这个功能。如-f 7表示密码过期7天后即禁止用户。
-g参数给新用户分配属组,需要注意的是,属组必须事先存在,否则无法分配,分配时使用GID或者属组名都可。如果数组不存在,则需要事先创建属组。
groupadd命令用于创建分组。
创建属组perl后,即可在创建新用户时给用户分配在perl这个属组内。
sudo useradd -m -g perl test或sudo useradd -m -g 1002 test
-k参数将/etc/skel目录下的文件复制到用户的家目录下。
但是只写-m参数就能到达目的了,也能将/etc/skel目录下的文件复制到用户的家目录下,貌似不用加-k参数也行,加了-k参数反而不行,奇怪~~~,那就不加-k了,写个-m就行了。
-M参数不设置新用户的家目录。
-N参数不要创建一个与用户登录名同名的新组,也就是默认行为是在创建新用户时也同时创建一个与用户名相同的新组。
没有创建test用户之前没有test组。
sudo useradd -m test;cat /etc/group
可以看到,创建新用户test的同时,也创建了test群组,该组的GID是1001。
sudo useradd -m -N test;cat /etc/group
可以看到,加了-N参数后,就不创建test组了。
-p参数设置密码。sudo useradd -m -p 123456 test
不知道为啥,指定了123456为test用户的密码,还是登录不上去,不知道啥原因。
-s参数指定哪个shell为默认的shell。sudo useradd -m -s /bin/dash test
指定dash shell为test的默认shell,之前系统默认自动指定的是/bin/sh
-u参数为用户指定一个唯一的UID。
sudo useradd -m -s /bin/dash -u 2023 test;cat /etc/passwd
如果指定已经存在的UID,会提示指定的UID不是唯一,需另选UID。
本系列内容均来自《Linux命令行与shell脚本编程大全 第四版》
后天(2023.06.22)就是端午节了,可以小小放个假,明天继续搬砖~~~
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411