像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.预留字段

linux查看文件权限_查看文件权限linux_linux中查看文件权限

useradd命令创建新用户名时,会默认自动把用户名设置成home路径下的目录(如用户名为dino,则相应的家目录为/home/dino),这是在创建后默认形成的。同时,也会给新用户添加启动文件和配置文件。

查看文件权限linux_linux查看文件权限_linux中查看文件权限

下面一个个参数示例演示创建新用户test后的相应改变。

sudo useraddtest

可以看到,多了新用户test,但是备注字段是空的。虽然/home/test存在/etc/passwd文件内,但是访问不了的,提示目录不存在,原因是没有加-m参数。

sudo useradd-m test

linux查看文件权限_linux中查看文件权限_查看文件权限linux

加了-m参数就可以了。

sudo useradd-m -c mycomments test

linux中查看文件权限_查看文件权限linux_linux查看文件权限

-c参数添加备注字段。

-d参数指定主目录名字:

sudo useradd -m -d /home/fred test

linux中查看文件权限_linux查看文件权限_查看文件权限linux

可以看到,-d参数指定了家目录的路径,已经不是默认的/home/test了,但是用户名(登录名)还是test。

-e参数用yyyy-mm-dd格式指定用户过期日期,缺省(也就是不设置的话)表示永不过期。

-f参数表示用户密码过期多少天后禁用该用户,0表示密码一旦过期立即禁用,-1表示不使用这个功能。如-f 7表示密码过期7天后即禁止用户。

-g参数给新用户分配属组,需要注意的是,属组必须事先存在,否则无法分配,分配时使用GID或者属组名都可。如果数组不存在,则需要事先创建属组。

groupadd命令用于创建分组。

查看文件权限linux_linux中查看文件权限_linux查看文件权限

创建属组perl后,即可在创建新用户时给用户分配在perl这个属组内。

sudo useradd -m -g perl test或sudo useradd -m -g 1002 test

linux查看文件权限_linux中查看文件权限_查看文件权限linux

-k参数将/etc/skel目录下的文件复制到用户的家目录下。

linux中查看文件权限_查看文件权限linux_linux查看文件权限

但是只写-m参数就能到达目的了,也能将/etc/skel目录下的文件复制到用户的家目录下,貌似不用加-k参数也行,加了-k参数反而不行,奇怪~~~,那就不加-k了,写个-m就行了。

linux中查看文件权限_linux查看文件权限_查看文件权限linux

linux中查看文件权限_查看文件权限linux_linux查看文件权限

-M参数不设置新用户的家目录。

-N参数不要创建一个与用户登录名同名的新组,也就是默认行为是在创建新用户时也同时创建一个与用户名相同的新组。

没有创建test用户之前没有test组。

查看文件权限linux_linux查看文件权限_linux中查看文件权限

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用户的密码,还是登录不上去,不知道啥原因。

linux中查看文件权限_linux查看文件权限_查看文件权限linux

-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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。