Questions tagged «permissions»

权限是Unix上控制对文件,目录和设备等资源的访问的方式,可以为所有者,组或所有用户指定。

4
/ home / <用户> /上的权限755
我想知道为什么默认情况下我的目录的/home/&lt;user&gt;/权限设置为755。这使其他用户可以进入目录并读取我家中的文件。有任何正当的理由吗? 我可以700为我的主目录和所有子目录设置权限吗,例如: chmod -R o-xw /home/&lt;user&gt;/ chmod -R g-xw /home/&lt;user&gt;/ 没有破坏任何东西? 另外,是否可以在我的家庭中设置权限,以便所有创建的新文件都具有600和目录700?


3
没有读访问权限的写访问权限
用户是否可能具有对文件的写访问权而无法读取它?这怎么可能? 我尝试了以下命令: debianbox@debian:~/posix/io$ touch filetest debianbox@debian:~/posix/io$ ls -l filetest -rw-r--r-- 1 debianbox debianbox 0 14 oct. 03:10 filetest debianbox@debian:~/posix/io$ echo "Hello World" &gt; filetest debianbox@debian:~/posix/io$ cat filetest Hello World debianbox@debian:~/posix/io$ chmod u-r filetest debianbox@debian:~/posix/io$ cat filetest cat: filetest: Permission forbidden debianbox@debian:~/posix/io$ 如您在这里看到的,我对该文件具有写但没有读访问权限。这怎么可能?这被视为错误吗?如果没有,这在什么情况下有用?

6
umask 077的缺点?
限制umask为077的缺点是什么?许多发行版(我相信除了Red Hat以外的所有发行版)都在/ etc / profile中配置了默认umask 022。对于多个用户正在访问的非桌面系统来说,这似乎太不安全了,安全性值得关注。 与此相关的是,在Ubuntu上,用户的主目录也创建了755权限,安装程序指出这是为了使用户更易于共享文件。假设用户可以方便地手动设置权限以共享文件,那么这不是问题。 还有哪些其他缺点?

3
是否存在一个始终存在的文件,并且“普通”用户无法对其进行统计?
我需要此单元测试。有一个函数对作为其参数传递的文件路径执行lstat。我必须在lstat失败的地方触发代码路径(因为代码覆盖率必须达到90%) 该测试只能在单个用户下运行,因此我想知道Ubuntu中是否存在一个始终存在的文件,但普通用户对该文件或文件夹没有读取权限。(因此lstat除非以超级用户身份执行,否则将失败。) 不存在的文件不是解决方案,因为有一个单独的代码路径已由我触发。 编辑:仅缺少对该文件的读取访问权是不够的。这样lstat仍然可以执行。通过在/ root中创建一个文件夹并在其中创建文件,我能够触发它(在我具有root访问权限的本地计算机上)。并在文件夹上设置权限700。因此,我正在搜索只能由root用户访问的文件夹中的文件。

2
为什么我不能列出具有读取权限的目录?
我创建了一个目录d和一个文件f。然后,我只授予自己对该目录的读取权限。我理解这应该意味着我可以列出文件(例如here),但是我不能。 will@wrmpb /p/t/permissions&gt; ls -al total 0 drwxr-xr-x 3 will wheel 102 4 Oct 08:30 . drwxrwxrwt 16 root wheel 544 4 Oct 08:30 .. dr-------- 3 will wheel 102 4 Oct 08:42 d will@wrmpb /p/t/permissions&gt; ls d will@wrmpb /p/t/permissions&gt; 如果我更改了写入和执行权限,则可以看到该文件。 will@wrmpb /p/t/permissions&gt; chmod 500 d will@wrmpb /p/t/permissions&gt; ls d …
14 permissions  osx  fish 


2
如何更改目录的所有者
编辑:问题是Apple使用权限来标记备份并阻止您对其进行修改(可能是安全功能)。通过使用,chmod -RN &lt;dir&gt;我从所有具有重要数据的文件夹中删除了ACL数据,这使我成为了所有者并应用了适当的权限。 最初的问题是 我有一个非常大的备份(&gt; 700GB),现在具有错误的权限(我的UID在全新安装过程中更改了,很长一段时间),我需要更改它们。耗时的选项是手动浏览每个文件夹并更改权限,但这会花费很多时间。 我想用来chown使自己成为我所有重要数据的所有者,然后chmod 700在所有这些文件夹上rwx使用以仅授予我权限。 理想的解决方案是使用一种方法find来递归查找与正则表达式匹配的文件夹(我的当前文件夹是.*/[DCV].*|Pictures|M[ou].*),然后将我的UID设置为所有者并将权限设置为700。 我无法掌握的重要信息: 但是,当我尝试运行时,chown Me DirectoryName我得到了chown: DirectoryName: Operation not permitted。 我发现的所有内容都与更改文件而不是目录的权限有关。也许我看错了方向? 某事告诉我,没有办法将我的UID rwx和---其他所有人共享。 我该如何实现?我正在运行Mac OS X 10.10.3。 我知道,这是在UNIX / Linux论坛(我运行Mac),但这个问题是一个很大的关于使用shell, ,chown,chmod和权限的任何解决方案张贴在这里将适用于任何基于UNIX的操作系统。如果发布的解决方案可以使我的旧备份重新出现在Time Machine中,那将是更好的选择。 感谢所有及时答复,但chown由于某种原因似乎在目录上不起作用的人。这是.sparsebundle网络驱动器上的磁盘映像吗?我以为它将与任何外部驱动器上的相同。


1
如何记住外部驱动器的文件所有者和组?
我用ext4分区格式化了外部硬盘驱动器,然后挂载了它。为了能够使用新分区,我做到了:sudo chown me:me /mount/directory将文件所有者和组从root更改为我,这很好用。 此更改是持久的,因此我想知道此信息存储在何处。如果我拆下硬盘驱动器然后将其挂载到其他目录,则仍将其设置为文件所有者和组,因此信息无法存储在挂载目录的inode中。 那么整个分区是否都有自己的inode来存储此类信息,如果可以的话,有没有办法查看它?还是在其他地方存储信息?

2
chown删除了setuid位:bug还是功能?
重现步骤: germar@host:~$ cd /tmp/ germar@host:/tmp$ touch test &amp;&amp; chmod u+s test &amp;&amp; ls -la test -rwSr--r-- 1 germar germar 0 Nov 2 20:11 test germar@host:/tmp$ chown germar:germar test &amp;&amp; ls -la test -rw-r--r-- 1 germar germar 0 Nov 2 20:11 test 经过Debian挤压和Ubuntu 12.04测试

4
尽管文件在我的群组中并且已设置群组读取权限,但无法读取
我在unix / linux机器上遇到一个奇怪的问题: 我是一个群组的成员,我们称其为群组A,并且某个文件(具有不同的所有者)也属于群组A。该文件的权限是 -rw-rw---- 因此,我希望我应该能够打开该文件,但我不是:当我尝试查看文件内容时(使用cat),我会收到“权限被拒绝”错误消息。 由于权限似乎是正确的,还有什么可能导致这种情况?是否有“覆盖”权限限制?如果是这样,我将如何查找?
14 permissions  files  nfs  group 

2
为什么不能在一台机器上root从另一台机器上更改nfs挂载的内容?
在我的NFS服务器上,我定义了以下导出: #NFS exports Database /shared -alldirs -network=192.168.1 -mask=255.255.255.0 在我的NFS客户端上: 192.168.1.7:/shared /shared nfs rw 0 0 显然,作为服务器上的root,我可以做任何我想做的事情。但是,在客户端上,我的普通用户'gabe'可以更改nfs挂载(假设我有权限),但root不能。 作为我的普通用户: gabe@client$ cd /shared gabe@client$ ls -l total 8 drwxrwxrwx 4 gabe wheel 512 Mar 20 19:20 tmp gabe@client$ cd tmp gabe@client$ touch test.txt gabe@client$ rm test.txt 作为根: # cd /shared/tmp # touch test.txt …
14 permissions  nfs 

3
如何让SDL应用程序(不是以root用户身份运行)使用控制台
我想使用基于SDL的程序在控制台上显示图形,而不必从控制台登录,也不需要以root用户身份运行该程序。例如,我希望能够通过ssh运行它。目标操作系统是raspbian。 这是python中的一个简短示例来说明问题: import os, pygame os.environ['SDL_VIDEODRIVER'] = 'fbcon' pygame.init() s = pygame.display.set_mode() print "Success" 如果我从控制台运行它,则可以正常运行(运行到完成,不会引发异常),如果以root用户运行它,则可以通过ssh运行。 我检查了我的用户是否在音频和视频组中。 我已经使用strace来查看从控制台运行它(起作用),通过ssh以root身份运行(也可以工作)以及通过ssh以普通用户身份运行(不起作用)之间的区别。 第一个区别是我的用户没有访问/ dev / tty0的权限。我创建了一个新组(tty0),将用户置于该组中,并添加了udev规则以使该组可以访问/ dev / tty0。 strace输出在此ioctl调用处发散-此处显示失败;当程序从控制台运行或以root身份从ssh运行时,ioctl返回0: open("/dev/tty", O_RDWR) = 4 ioctl(4, VT_GETSTATE, 0xbeaa01f8) = -1 EINVAL (Invalid argument) (地址也有所不同,但这并不重要。) 鉴于我的程序在以root身份运行时可以运行,因此我认为这存在权限问题。如何为我的用户提供必要的权限,使其能够运行该程序而无需在控制台上登录(并且无需以root用户身份运行)?

3
GID是什么意思?
GID实际上是什么意思? 我已经用Google搜索了,这就是linux.about.com所说的: 进程的组标识号。有效的组号在/etc/group和/etc/passwd文件的GID字段中给出。启动进程时,其GID设置为其父进程的GID。 但是,这是什么意思? 我对文件夹的权限当前位于 0755 我了解如果我为所有者设置了UID,它将是 4755 如果我设置组的GID,它将是 2755 如果我为其他人设置粘滞位 1755 设置这些权限甚至重要吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.