页次: 1
[ipbbs@cloud home]$ pwd /home [ipbbs@cloud home]$ whoami ipbbs [ipbbs@cloud home]$ useradd zhangsan bash: /usr/sbin/useradd: 权限不够
在 home 目录下用户 ipbbs 执行添加用户命令, 没有权限
在home目录下创建一个文件
用root 用户创建一个文件 test.sh
#!/bin/bash useradd zhangsan
然后添加可执行权限 , 还是使用root用户
chmod 777 test.sh
添加suid 权限
ls -al test.sh -rwsrwxrwx. 1 root root 30 12月 9 09:41 test.sh
可以看到s为已经添加了, 切换到 用户ipbbs
执行依然没有权限。
因为 这个权限仅仅对二进制文件有效。
############
正确的示例应该是用个二进制文件来测试。
首先用root用户创建两个文件, 一个是 txt.txt , 一个是 a.c
txt.txt
this is test
a.c , 读取文件 /home/txt.txt 并打印
#include <stdio.h> int main() { FILE *f; char c; f = fopen("/home/txt.txt", "r"); if(f) { c = fgetc(f); while (c != EOF) { printf("%c", c); c = getc(f); } } else { printf("open fail\n"); } return 0; }
编译生成 a.out 文件
gcc a.c
首先用root运行一下
# ./a.out this is test
读取文件正常, 说明程序没有文件, 修改 txt.txt 的权限为 600
chmod 600 txt.txt
使用用户ipbbs运行
# su ipbbs $ ./a.out open fail
发现不能打开。
用root用户修改权限
chmod u+s a.out
使用用户 ipbbs 运行
./a.out this is test
正常读取了。
ipbbs.net
离线
页次: 1