当前位置: 技术问答>linux和unix
ubuntu 用户管理问题
来源: 互联网 发布时间:2016-06-17
本文导语: 我想在ubuntu下创建一个用户,要求这个用户不能读其他用户的文件(就是只能看自己本地目录下的文件)。请问如何操作。 现在好像创建一个用户都能读别的用户的文件,很头痛。实在不想通过文件权限来处理 ...
我想在ubuntu下创建一个用户,要求这个用户不能读其他用户的文件(就是只能看自己本地目录下的文件)。请问如何操作。
现在好像创建一个用户都能读别的用户的文件,很头痛。实在不想通过文件权限来处理
现在好像创建一个用户都能读别的用户的文件,很头痛。实在不想通过文件权限来处理
|
忽然看到楼主说不想通过文件权限处理。。那么应该还有别的办法?
针对这个用户,在譬如 /etc/profile 里添加 LD_PRELOAD 指定一个 hook 的 libc stub,劫持 access 和 open,进行过滤,对不想用户访问的文件直接返回 EPERM ?
针对这个用户,在譬如 /etc/profile 里添加 LD_PRELOAD 指定一个 hook 的 libc stub,劫持 access 和 open,进行过滤,对不想用户访问的文件直接返回 EPERM ?
|
我的意思是把不同的用户放到不同的组中。
将每个用户的家目录设为这个用户所有,如:
chown username /home/username.
对于其他的用户家目录执行
chmod o-rwx /home/username
这样就可以防止用户访问其他的用户的家目录。
当然需要先创建group,然后才能将用户加进这个group中。
为了防止用户访问 /usr这类目录,
可以用同样的指令:
chmod o-rwx /usr
但是不能对根目录"/"这样做,因为这会使用户无法进入自己的家目录。
我尝试了一下把同一个组的其他用户权限设置为0,这样可以把所有用户放到同一个组中,不必每次建立新的用户组。
但是尝试了很久,没有成功,总是能够cd进去,不知道为什么。
将每个用户的家目录设为这个用户所有,如:
chown username /home/username.
对于其他的用户家目录执行
chmod o-rwx /home/username
这样就可以防止用户访问其他的用户的家目录。
当然需要先创建group,然后才能将用户加进这个group中。
为了防止用户访问 /usr这类目录,
可以用同样的指令:
chmod o-rwx /usr
但是不能对根目录"/"这样做,因为这会使用户无法进入自己的家目录。
我尝试了一下把同一个组的其他用户权限设置为0,这样可以把所有用户放到同一个组中,不必每次建立新的用户组。
但是尝试了很久,没有成功,总是能够cd进去,不知道为什么。
|
用chroot来实现吧
安装openssh5.1以上的版本 在设定文件中就有这相关的配置
我在公司就实现了这样的要求
在sshd_config追加以下设定
假设你要限制在自己家的用户群组为homeonly
Match group homeonly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
然后把新加用户加入到homeonly组中,比如用户为user1
然后把用户登陆的路径改为/(对于被限制的用户来说是/,其实是/home/user1/)
usermod -d / user1
把用户家的路径改成root的
chown root.root /home/user1
再把权限改成755
chmod 755 /home/user1
然后用户用ssh登陆后就被限制在自己的家里了
但是用户在自己的家里不能创建文件
所以,你在/home/user1/下再建立一个文件夹 比如data
把data的owner属性改成user1的
这样 user1就可以在自己家的data下为所欲为了
安装openssh5.1以上的版本 在设定文件中就有这相关的配置
我在公司就实现了这样的要求
在sshd_config追加以下设定
假设你要限制在自己家的用户群组为homeonly
Match group homeonly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
然后把新加用户加入到homeonly组中,比如用户为user1
然后把用户登陆的路径改为/(对于被限制的用户来说是/,其实是/home/user1/)
usermod -d / user1
把用户家的路径改成root的
chown root.root /home/user1
再把权限改成755
chmod 755 /home/user1
然后用户用ssh登陆后就被限制在自己的家里了
但是用户在自己的家里不能创建文件
所以,你在/home/user1/下再建立一个文件夹 比如data
把data的owner属性改成user1的
这样 user1就可以在自己家的data下为所欲为了
|
除非系统中所有路径权限后三位都是 0(ls -l 显示 drwxr-x---)这样。通常情况下是 drwxr-xr-x 这样的话,都是可以读的。
|
用sudo chown改用户的权限,把该用户单独设为一个用户组里试试看