相关疑难解决方法(0)

root 无法写入普通用户拥有的文件

我以普通用户身份创建一个文件testuser:

$ cat > /tmp/zz
Run Code Online (Sandbox Code Playgroud)

该文件由该用户拥有(如预期):

$ ls -lA /tmp/zz 
-rw------- 1 testuser testuser 0 Feb 20 15:32 zz
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试将其截断为 时root,我的权限被拒绝:

# truncate --size=0 /tmp/zz
truncate: cannot open '/tmp/zz' for writing: Permission denied
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 时strace,我看到以下内容:

openat(AT_FDCWD, "/tmp/zz", O_WRONLY|O_CREAT|O_NONBLOCK, 0666) = -1 EACCES (Permission denied)
write(2, "truncate: ", 10truncate: )              = 10
write(2, "cannot open '/tmp/zz' for writin"..., 33cannot open '/tmp/zz' for writing) = 33
...
write(2, ": Permission denied", 19: Permission denied)     = 19 …
Run Code Online (Sandbox Code Playgroud)

shell root permissions strace

26
推荐指数
1
解决办法
6298
查看次数

以下内核消息是什么意思?

出现以下/var/log/messages,是什么意思?

  Feb 19 22:51:20  kernel: [  187.819487] non-matching-uid symlink following attempted in sticky world-writable directory by sh (fsuid 1001 != 0)
Run Code Online (Sandbox Code Playgroud)

它发生在 cron 作业即将运行时。

filesystems cron

12
推荐指数
1
解决办法
1359
查看次数

将 sudo echo "xyz" 的输出重定向到文件时,为什么会出现“权限被拒绝”?

为什么我得到

-bash: test: Permission denied
Run Code Online (Sandbox Code Playgroud)

当我跑

sudo echo "xyz" > test
Run Code Online (Sandbox Code Playgroud)

目录权限为:

drwxr-xr-x 3 root root 4096 2014-08-05 16:26 
Run Code Online (Sandbox Code Playgroud)

我在目录中使用sudo. 但是为什么我不能 sudo 回声呢?

permissions sudo io-redirection

11
推荐指数
1
解决办法
2万
查看次数

CentOS 6 和 CentOS 7 之间的硬链接权限行为不同

当我尝试创建硬链接时,我在 CentOS 7 中遇到权限错误。在 CentOS 6 中设置相同的权限时,我没有收到错误消息。问题集中在组权限上。我不确定哪个操作系统版本是正确的,哪个是错误的。

让我来说明正在发生的事情。在我当前的工作目录中,我有两个目录:源和目标。一开始,destination 是空的;源包含一个文本文件。

[root@tc-dlx-nba cwd]# ls -l
total 0
drwxrwxrwx. 2 root root  6 Jun 12 14:33 destination
drwxrwxrwx. 2 root root 21 Jun 12 14:33 source
[root@tc-dlx-nba cwd]# ls -l destination/
total 0
[root@tc-dlx-nba cwd]# ls -l source/
total 4
-rw-r--r--. 1 root root 8 Jun 12 14:20 test.txt
[root@tc-dlx-nba cwd]# 
Run Code Online (Sandbox Code Playgroud)

如您所见,两个目录的权限为 777,所有者和组都设置为 root。文本文件的所有者和组也都设置为 root。但是,文本文件的权限对于所有者是可读写的,而对于组是只读的。

当我以 root 身份登录时,在目标目录中创建指向文本文件(在源目录中)的硬链接没有问题。

[root@tc-dlx-nba cwd]# ln source/test.txt destination/
[root@tc-dlx-nba cwd]# ls destination/
test.txt
Run Code Online (Sandbox Code Playgroud)

但是,如果我以其他用户(在本例中为 admin)身份登录,则无法创建链接。我得到:“不允许操作。”

[root@tc-dlx-nba cwd]# rm …
Run Code Online (Sandbox Code Playgroud)

permissions centos hard-link

9
推荐指数
1
解决办法
5268
查看次数

无法删除具有文件模式位 a+rw 的文件

我有一个具有以下文件模式位 ( a+rw) 的文件:

[0] mypc<johndoe>:~>sudo touch /tmp/test    
[0] mypc<johndoe>:~>sudo chmod a+rw /tmp/test
[0] mypc<johndoe>:~>ls -l  /tmp/test
-rw-rw-rw- 1 root root 0 Mar 13 11:09 /tmp/test
Run Code Online (Sandbox Code Playgroud)

为什么我不能删除文件?

[0] mypc<johndoe>:~>rm /tmp/test
rm: cannot remove '/tmp/test': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

linux permissions chmod rm chown

8
推荐指数
2
解决办法
1946
查看次数

更改用户时,符号链接无法按预期工作

符号链接不起作用,使用标准 UBUNTU 16 LTS...它显示“权限被拒绝”,我希望在那里获得访问权限,即使在chown.

完整示例:

sudo rm /tmp/file.txt  # if exist, remove

cd ~
sudo chmod 666 data/file.txt
ls -l data/file.txt    # "-rw-rw-rw-" as expected
more data/file.txt     # working fine
sudo ln -sf $PWD/data/file.txt /tmp/file.txt  # fine
ls -l /tmp/file.txt    # "lrwxrwxrwx",  /tmp/file.txt -> /home/thisUser/file.txt
more /tmp/file.txt     # fine

sudo chown -h postgres:postgres /tmp/file.txt

sudo more /tmp/file.txt   #  NOT WORK! but its is sudo! and 666!
Run Code Online (Sandbox Code Playgroud)

root permissions symlink tmp chown

3
推荐指数
1
解决办法
5427
查看次数

标签 统计

permissions ×5

chown ×2

root ×2

centos ×1

chmod ×1

cron ×1

filesystems ×1

hard-link ×1

io-redirection ×1

linux ×1

rm ×1

shell ×1

strace ×1

sudo ×1

symlink ×1

tmp ×1