分页: 1 / 1

用户组对文件夹的访问权限如何设置?

发表于 : 2010-12-18 12:40
54nb
OS:Ubuntu Server
用户组:dev 组ID:9527
用户:zhang
-----------------------------
允许dev组 对 /home/src 只有只读权限
允许dev组 对 /home/build 有读写和运行的权限
禁止dev组的用户使用系统命令:
ls
rm
kill
cd
请问如何做呢?
:em06

Re: 用户组对文件夹的访问权限如何设置?

发表于 : 2010-12-18 17:27
hiphen
1.
chgrp -R dev /home/src
chmod -R 750 /home/src

2.
chgrp -R dev /home/build
chmod -R 770 /home/build

3.
至于禁止使用嘛,,那个设定有点麻烦,知道的童鞋说一下,
建议lz到CU搜索一下关键字“限制使用命令”
解决后回来share经验

Re: 用户组对文件夹的访问权限如何设置?

发表于 : 2010-12-18 17:39
hiphen
Actually, ACL才是你作为团队文件夹使用的最好选择,
不过这个语法有点复杂,并且ubuntu的文件系统默认没有支持ACL,如果没有太复杂要求,使用group来限定好了

对于限制使用命令,不给力的建议是使用chroot吧,
貌似pam_console模块也可以实现,不过没详细研究


等着lz回来share经验

Re: 用户组对文件夹的访问权限如何设置?

发表于 : 2010-12-18 17:46
54nb
感谢楼上的回答。经过研究。
屏蔽某用户shell的内建函数:
我们在此用户登陆的配置文件中/home/User/.bash_profile ,用enable -n commandname 的方式就可以屏蔽掉。
如:
enable -n let
enable -n local
enable -n logout
enable -n popd
enable -n printf
enable -n pushd
enable -n pwd
enable -n read
enable -n readonly
enable -n return
enable -n ls
enable -n kill
enable -n killall
enable -n find
enable -n echo
enable -n enable 这句必须在结尾。否则不生效。

补充,当然还有一些 alias 是在 /etc/bashrc 文件中定义,想要屏蔽当然要删除掉

还有/etc/profile.d/这里面也有,have a look。

9。还有一些shell 编程的结构语句,还没有找到办法屏蔽。例如: for,;

等,差不多了。这个用户是世界上最郁闷的了。

Re: 用户组对文件夹的访问权限如何设置?

发表于 : 2010-12-18 18:02
hiphen
但是这样,此用户不会编辑自己的.bash_profile文件从而打开权限么?

Re: 用户组对文件夹的访问权限如何设置?

发表于 : 2010-12-18 19:35
astolia
acl的语法并不复杂,要启用也只需要给mount加个参数而已
安装:
sudo apt-get install acl

启用:
编辑/etc/fstab,在目标分区的挂载参数中添加一个acl
或者临时性的
sudo mount -o acl,remount /dev/sdaX

设置:
setfacl -m group:dev:0 /bin/ls
就取消了dev组用户对/bin/ls的所有权限(/bin/ls的组不是dev的情况下),其中的0也可以是rwx这种形式

另外,enable只对shell内建命令有效,你上面写出的kill/killall/find/echo都是外部命令,enable管不了。
如果真想限制的话,最好选用受限shell作为用户的登录shell,bash -r或rssh之类的,否则很容易绕过去。
或者狠一点搞个chroot