- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在学习 Linux Essentials 类(class),最近我遇到了 setuid、setgid 和粘滞位权限。
我试着做一个实际的例子并运行命令以将它们应用到我创建的文件和目录上。
我注意到删除它们的数字命令是“chmod 0775”,我想,如果所有三个都应用了,如果我运行数字命令删除它们会发生什么。我以为它会按顺序删除它们,但就文件而言,它会立即删除所有这些文件。
然后我尝试了目录。那里的结果不同。仅删除了最后应用的权限(即 Sticky Bit)。我再次运行命令,但什么也没做。其余权限(setuid、setgid)均未删除。
为什么会这样?
谢谢!
最佳答案
文件和目录的粘滞位略有不同......例如,要从名为“Testy”的目录中删除小棒,您可以键入:
sudo chmod g-s Testy/
请注意,键入以下内容将不起作用:sudo chmod 777 Testy。下面的教程提供了很好的示例和解释,我的建议是多练习其中一些示例,然后它们最终都会变得有意义。理解的关键(无论如何在我看来)是这里涉及的八进制系统设置权限/位等,一旦你理解它一切就绪。
关于Linux 权限 - setuid、setgid、sticky bit - 一条命令全部删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39698962/
所以一个用户有一个主要组,可能属于其他补充组。 假设用户A主要组是G,补充组G+1,G+2 用户A运行一个程序是否可以将组id改为G+1 默认情况下,我知道组 ID 将设置为 G,但是当我在程序下面运
我有一个 C 程序,它使用组“agrp”的组 id 调用 setgid(),当我尝试运行它时,它显示“不允许操作”。 该程序有以下 ls -la list : -r-xr-s--x 1 root
我有这个 C 程序: #include #include int main(void) { if (chmod("/tmp/foo", 0755 | S_ISGID) private/t
在 Linux 中,您如何递归地提取所有未设置 setgid 位的目录列表? 我知道你能做到 find . -type d /perm g+s 找到所有已设置的目录,但我不清楚如何否定它。或者是否有其
我的任务是为系统上的所有用户列出用户所属的所有组。这个想法是通过 /etc/passwd 并为每个用户打印其组。 [编辑] 成功了: if( getgrouplist(passwd->pw_name,
我一直在努力思考 setuid/setgid 是如何工作的……我想到了这个人为的例子: 用户: 用户A属于A组 用户B属于B组 文件 a.txt 由用户 A 拥有,权限为 rw-rw----- (66
晚上好。 在对服务器进行一些调查后——(在安全方面花了很多时间):我有一个严肃的问题:服务器上 SETGID 位的用途是什么!? 非常感谢您的帮助! 零 有什么区别 drwxrwxrwx drwxr-
我在 C 中创建了一个 setuid 程序。可执行文件如下所示: -r-s-r-s--- 1 root users 13073 Jun 15 21:56 server 我以 userA/users 身
我正在 Apache 中运行一个已编译的 python cgi 脚本(使用 cxfreeze)。该脚本除其他外,调用 os.setuid(some_uid) os.setgid(some_gid) 显
有没有一种简单的方法可以查看正在运行的进程的真实、有效和保存的 UID 和 GID? 最佳答案 将 ps 与 U、G(真实)g、u 一起使用>(有效)? 关于linux id 和 setuid/set
我写了这个函数: void setugid(uid_t uid, gid_t gid) { uid_t euid = geteuid(); gid_t egid = getegid()
我正试图放弃 C 程序中的特权,但无论我做什么,GID 都保持为 0。经过数小时的研究,我一无所知:( #include #include #include #include #include
我刚刚使用 $ sudo chmod g+s filename 更改了我的文件权限,我的文件权限从 drwxr-xr-x 变成了 drwxr-sr- x。如何删除它? 最佳答案 将用于添加权限的 +
需要创建一个带有 setgid 位的目录。通常有以下工作: mkdir("/dummy", 755); chmod("/dummy", 2755); 但是在设置 setgid 位之前,其他进程有可能将
我有一个 Python 脚本,我希望能够以 UID 200 的系统用户 guybrush 和 GID 200 的组 guybrush 运行。 目前我的 Python 脚本(位于 /path/to/sc
我有一个具有以下权限的文件夹: drwxrws--x+ 13 myuser www-data 4096 Mar 20 09:57 project-folder 在此文件夹中,我有一个具有以
我有以下 Python 脚本,我想使用 setuid/setgid 位提供的权限来执行该脚本: #!/usr/bin/env python3 from mypackage.cli import mai
我想使用系统调用setgid,来改变当前进程的组ID。尝试查找此函数,我发现的唯一实现是在 kern_prot.c 中: /* * setgid * * Description: Set gro
我目前正在学习 Linux Essentials 类(class),最近我遇到了 setuid、setgid 和粘滞位权限。 我试着做一个实际的例子并运行命令以将它们应用到我创建的文件和目录上。 我注
我正在使用 setregid(real_gid, effective_gid) 放弃 root 权限。两者都设置为 1000,但是当我运行 id 命令时,组列表中有 root!我该如何删除它? 最佳答
我是一名优秀的程序员,十分优秀!