我在 Linux 内核 2.6.18-7.1 中遇到以下问题
adduser -D
我使用以下/etc/passwd
内容创建了用户“BBC”"BBC:x:1010:1010:Linux User,,,:/home/BBC:/bin/sh"
我使用以下方式创建了“BBCGROUP”组
addgroup BBCGROUP
addgroup BBC BBCGROUP
使用以下命令etc/group
将用户“BBC”添加到组“BBCGROUP”中:英国广播公司:x:1010:
BBC集团:x:9:BBC
然后创建目录
mkdir /usr1 [ as root ]
我使用 echo "hello" > /usr1/test.txt 创建了文件 /usr1/test.txt
ls -l /usr1 显示“-rwxrwx--x 1 root root 5 Sep 5 14:01 test.txt”
chmod -R 771 /usr1
chown -R:BBCGROUP /usr1。
在此之后我预计用户“BBC”能够读取/写入/执行 /usr1 下的文件。
现在“ls -l /usr1”给出-rwxrwx--x 1 root BBCGROUP 5 Sep 5 14:03 test.txt 9)我通过“su -s /bin/sh BBC”将用户更改为“BBC”10)id 命令显示uid=1010(BBC)gid=1010(BBC) 11)cd /usr1 12)我试图修改文件echo“HELLO1”> test.txt或touch test.txt,但出现错误“sh: can't create /usr1/test.txt: Permission denied” for user BBC。
这是我在嵌入式系统中遇到的基本问题,有什么解决办法吗?需要更改任何配置吗?在桌面 Linux 上同样可以正常工作。请提供任何信息来解决这个问题。
答案1
newgrp BBCGROUP
您可以在进入目录之前尝试使用该命令。
或者,您可能希望将此用户的默认组更改为 BBCGROUP 而不是 BBC。也许addgroup
实用程序可以做到这一点(我这里有一些其他风格的实用程序,所以我不确定),或者您可以手动将第二个更改:1010:
为:9:
/etc/passwd 文件中的(小心!)。
顺便说一句,这个问题似乎更适合https://superuser.com/或者(更好的:) https://unix.stackexchange.com/我想。