普通用户默认没有修改/etc/shadow文件的权限,那么普通用户为什么可以通过passwd命令修改自己的密码?
时间: 2023-05-15 14:05:15 浏览: 664
普通用户可以通过passwd命令修改自己的密码是因为passwd命令是由root用户设置为setuid程序,这意味着当普通用户运行passwd命令时,它会以root用户的权限运行,从而允许普通用户修改自己的密码。
相关问题
写出能够完成下面任务的命令: 1. 新建一个用户组student,新建一个用户stu1,用户所属用户组为student,家目录为/usr/local/stu1,并为该用户设置密码; 2. 使用默认参数新建stu2用户,并设置密码,将stu2附加到student组中,查看文件/etc/passwd、/etc/shadow、/etc/group中关于stu1、stu2用户,及student和stu2组的信息,将stu2从student组中删除; 3. 查看/etc/shadow中stu1用户信息,锁定用户stu1用户,比较锁定前后/etc/shadow中文件中stu1用户信息的变化,在字符控制台分别使用stu1和stu2登录,比较测试结果,解锁stu1用户。 4. 创建目录/right,查看该目录文件详细信息,切换到用户stu1,测试stu1用户是否能够在该目录下创建文件。再切换回root用户,修改/ritght目录文件权限位,使得stu1用户能够在下面创建文件一个名为stu1_file的文件,内容为“echo this is stu1_file”; 5. 将文件目录/right的所属用户修改为stu1,所属用户组修改为student; 6. 以数字方式修改文件/right/stu1_file文件权限属性,要求所属用户及用户组权限为读、写、可执行,其他用户只读; 7. 不改变文件/right/stu1_file的权限属性,使stu2用户对该文件具有读、写、可执行权限,切换到stu2,修改文件内容为“echo this is stu1_file modified by stu2”,并执行该文件; 8. 删除用户stu1、stu2及所有数据,删除用户组student,删除目录/right。
1.
```
sudo groupadd student
sudo useradd -m -d /usr/local/stu1 -g student stu1
sudo passwd stu1
```
2.
```
sudo useradd stu2
sudo passwd stu2
sudo usermod -a -G student stu2
sudo cat /etc/passwd | grep "stu1\|stu2"
sudo cat /etc/shadow | grep "stu1\|stu2"
sudo cat /etc/group | grep "student\|stu2"
sudo gpasswd -d stu2 student
```
3.
```
sudo cat /etc/shadow | grep "stu1"
sudo passwd -l stu1
sudo cat /etc/shadow | grep "stu1"
```
在字符控制台中分别使用stu1和stu2登录,比较测试结果(需要手动操作)。
解锁stu1用户:
```
sudo passwd -u stu1
```
4.
```
sudo mkdir /right
sudo ls -l /right
sudo su - stu1
cd /right
touch test.txt
exit
sudo chown root:student /right
sudo chmod 775 /right
sudo su - stu1
cd /right
echo "this is stu1_file" > stu1_file
exit
sudo chmod 775 /right/stu1_file
```
5.
```
sudo chown stu1:student /right
```
6.
```
sudo chmod 770 /right/stu1_file
```
7.
```
sudo chmod u+rwx,g+rwx,o+r /right/stu1_file
sudo su - stu2
cd /right
echo "echo this is stu1_file modified by stu2" > stu1_file
chmod +x stu1_file
./stu1_file
exit
```
8.
```
sudo userdel -r stu1
sudo userdel -r stu2
sudo groupdel student
sudo rm -rf /right
```
/etc/shadow 和 /etc/passwd区别
在 Linux 系统中,/etc/passwd 和 /etc/shadow 文件都是存储用户账户信息的文件,但是它们的作用和格式是不同的。
/etc/passwd 文件包含所有用户的账户信息,包括用户名、用户 ID、用户组 ID、用户主目录、默认 shell 等信息。这个文件对于所有用户都是可读的,但只有 root 用户才有权限对其进行修改。
/etc/shadow 文件则是存储了系统用户的密码信息,只有 root 用户才有权限读取和修改此文件。该文件中每个用户的密码信息都是经过加密处理的,这样即使有人非法获取了该文件也无法轻易地得到用户的真实密码。
因此,/etc/passwd 文件主要用于查看用户账户信息,而 /etc/shadow 文件则主要用于存储用户的密码信息,以提高系统的安全性。
阅读全文