基本上,我希望新用户只有少数权限 - 无法读取普通用户的主目录,只能读取或写入一个目录中的文件(只能读取或写入/home/user/
...不能读取或写入/home/me/
或读取或写入/home/someoneelse/
。这是运行 Windows 网络的学校和大学的常见设置。在 Ubuntu 中似乎应该很简单。
答案1
我对其他操作系统的“来宾用户权限”一无所知,但对于 Ubuntu,您可以创建具有任何权限的用户。另一方面,存在一个“来宾会话”,可以从已启动的会话中访问。两者都有描述这里。
除了您授予您创建的新用户的权限之外,我建议您从您这边设置主目录访问权限(在某种意义上,以一种积极的方式;通过为您的目录本身设置规则;不要依赖于来宾用户的“较低权限”情况。)为此,请转到 /home,右键单击您要设置的主目录,转到属性,转到权限并根据需要进行设置。这也可以通过命令行完成。
答案2
在 ubuntu 中,大多数文件可以被任何人读取,但文件只能由所有者写入/更改。
因此默认情况下写入权限是可以的。如果要更改读取权限:请执行以下操作:
假设你有一个文件 \home\user\file.txt,它具有正常权限。如果你执行
cd /home/user
ls -l file.txt
你会看到类似
-rw-r--r-- 1 user group 45655 2010-01-16 17:21 file.txt
这意味着:
- rw = 用户“user”的读写权限,
- r = 组“group”的读取权限
- r = 任何其他人的读取权限。
默认组是只有“用户”作为成员的组。因此,您只需更改其他任何人的 r 权限,操作如下:
cd /home/user
chmod o-r file.txt
- chmod = 更改修饰符,更改权限
- o = 所有其他人(不是用户,也不在组中)
- -r = 删除读取权限
如果你现在执行
ls -l file.txt
你应该看到
-rw-r----- 1 user group 45655 2010-01-16 17:21 file.txt
因此最后一个 'r' 被删除。您可以在命令中使用通配符,例如
chmod o-r f*
将更改所有以“f”开头的文件。如果要在完整目录(包括所有子目录)上使用它,则需要添加“-R”(递归)参数:
chmod o-r -R /home/user
将从整个 /home/user 目录中删除每个非所有者或非组的用户的读取权限。
我不建议更改系统目录,但如果你这样做,你需要在命令前添加“sudo”。系统目录中没有重要信息,因此将其设为不可写就足够了。
最终答案:
sudo chmod o-r -R /home/*