设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
运维技术 —— LinuxSir.cn
›
服务器架设、应用、维护
›
如何实现这样的权限
返回列表
查看:
828
|
回复:
6
如何实现这样的权限
[复制链接]
happyhour
happyhour
当前离线
积分
59
IP卡
狗仔卡
发表于 2004-12-13 01:41:45
|
显示全部楼层
|
阅读模式
我用vsftp建了一个服务器,用root用户新建了一个目录/tmp/ftp,想控制AA、BB和CC三个用户(都不属于root组)对目录/tmp/ftp的不同权限:AA-Upload用户,可以上传下载,可以新建文件夹,但不能删除文件和文件夹,不能重命名原有文件和文件夹;BB-Download用户,只能下载;CC-Admin用户,管理员,可以上传,可以下载,可以新建文件夹,可以删除和更改文件和文件夹名。
请问怎样通过chmod、chown和chgrp等命令实现?多谢了。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
lanmaster
lanmaster
当前离线
积分
579
IP卡
狗仔卡
发表于 2004-12-13 02:23:12
|
显示全部楼层
在我的印象中,除了要像你这样设置之外。在vsftp的配置文件中还要设置。但具体如何设置我记不清。你可以在论坛里搜索一下。应该可以找到。
回复
支持
反对
使用道具
举报
显身卡
bst
bst
当前离线
积分
197
IP卡
狗仔卡
发表于 2004-12-13 07:59:21
|
显示全部楼层
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=42075
这里有讨论
回复
支持
反对
使用道具
举报
显身卡
bst
bst
当前离线
积分
197
IP卡
狗仔卡
发表于 2004-12-13 08:00:39
|
显示全部楼层
ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-2.0.1/
回复
支持
反对
使用道具
举报
显身卡
attiseve
attiseve
当前离线
积分
341
IP卡
狗仔卡
发表于 2004-12-13 08:39:52
|
显示全部楼层
proftpd吧
回复
支持
反对
使用道具
举报
显身卡
happyhour
happyhour
当前离线
积分
59
IP卡
狗仔卡
楼主
|
发表于 2004-12-13 10:36:25
|
显示全部楼层
在网上找了很久,找到了ACL这个好东东,很容易实现我提出来的问题,特贴出来与大家分享。
Linux上的存取控制清单
在 Unix/Linux 系统上沿用了多年的权限机制,由于欠缺灵活性,在现今的信息系统上显得落后和不敷应用。然而一个新的权限机制标准已经诞生出来,本文将会为大家介绍这个新机制在 Linux 上的操作方式。
传统上,在 Linux 系统中每个档案和目录都设有权限 (permission) 来决定那些人能够使用这个档案。
权限分为三组,分别为:拥有者 (file owner),群组 (group),及 其它 (other)。每组中再设有其属性。属性亦分为三种,分别为:读取 (read),写入 (write),及 执行 (executable)。
我们可以用 "ls -l" 来检视档案的权限:
-rwxrw-r-- 1 adam mis 272401 May 10 2003 report.doc
在上面的例子,档案 report.doc 的拥有者为 "adam" 而 adam 可以读取,写入 和执行这个档案,另外 report.doc 的群组为 "mis",在系统中所有属于 mis 群组 的使用者皆可读取和写入这个档案,而其它的使用者只能够读取这个档案。
如果我们想 report.doc 的内容只能给 mis 群组的使用者读取,我们可以用 "chmod 640 report.doc" 这个指令更改其权限。
-rw-r----- 1 adam mis 272401 May 10 2003 report.doc
要是 report.doc 这个档案同时要给 mis 和 hr 两个群组的使用者读取,现有的权限机制已不能够让我们简易地设定。我们得要劳烦系统管理员为我们加入一个新的群组 (i.e. mishr), 并把所有 mis 和 hr 中的使用者加进 mishr 群组中。然后我们要用 "chgrp mishr report.doc" 把群组设为 mishr。
-rw-r----- 1 adam mishr 272401 May 10 2003 report.doc
假若,我们的要求再复杂一点:要让使用者 adam 和 eva 能读取和写入,群组 mis 和 hr 只能读取。那么,任我们再多加新的群组亦没办法得到这样的权限设定。要得到以上的权限设定,我们须要一个新的权限机制。而这个机制名为存取控制清单 (Access Control List, 简称 ACL)。ACL 实为现有权限机制的延伸,在三个基本设定 (拥有者,群组及其它) 外,允许我们加入对某指定使用者或群组的存取权限设定。
为针对 Unix 系统先天的不足,一个名为 POSIX ACL 的权限机制标准便诞生出来。其目的是为各 Unix 系统之间制定一个兼容的 ACL 标准,使各用家能在各系统之间使用统一的接口。
这个 POSIX ACL 的功能在 Linux kernel 2.6 上被正式支持,之后又被 back-port 到 2.4 kernel 上。大家常用的档案系统,如:ext3,xfs,jfs,和 ReiserFS,都能使用 ACL。当然,大家须要在编译 kernel 时启动 ACL。
相关的 kernel option:
CONFIG_FS_POSIX_ACL
CONFIG_EXT3_FS_POSIX_ACL
CONFIG_EXT2_FS_POSIX_ACL
挂上档案系统
虽然在 kernel 中已加进了 POSIX ACL 的支持,但是并不会自动启用的。我们必须在挂上档案系统时指明要使用 ACL。例如:
mount -t ext3 -o acl /dev/sda1 /home
当中 “-o acl” 便是在 /dev/sda1 上启用 ACL 的选项。
我们亦可以在 /etc/fstab 中加入选项:
/dev/sda1 /home ext3 acl 1 2
检视ACL
要检视一个档案或目录的 ACL,便要使用 “getfacl” 指令:
[adam@www adam]$ getfacl report.doc
# file: report.doc
# owner: adam
# group: mis
user::rw-
group::rw-
other::r--
以上的例子列出了一个基本的 ACL (Minimum ACL)。头三行为档案数据,当中包括了档案的拥有者和所属群组。之后的便是 ACL 中的每一条的规则。
在这个基本的 ACL 中:
user::rw- 拥有者 adam 能读取和写入
group::rw- 属于 mis 群组的使用者能读取和写入
other::r-- 其它的使用者只能读取
更改ACL
“setfacl” 指令能更改一个档案或目录的 ACL。其用法如下:
setfacl option rules files
option:
-m 用来新增或修改 ACL 中的规则
-x 用来移除 ACL 中的规则
rules:
user
uid/name)
perms) 指定某位使用者的权限
group
gid/name)
perms) 指定某一群组的权限
other:
perms) 指定其它使用者的权限
mask:
perms) 设定有效的权限屏蔽
(perms) 为传统的 r(读取), w(写入) 及 x(执行)
如果想让 hr群组的使用者能读取 “report.doc”而其它的人不能读取的话。 我们可以用以下的指令达成:
setfacl -m group:hr:r,other::- report.doc
以 getfacl 检视新的 ACL:
[adam@www adam]$ getfacl report.doc
# file: report.doc
# owner: adam
# group: mis
user::rw-
group::rw-
group:hr:r--
mask::rw-
other::---
回应本文开始时所要的权限: 要让使用者 adam 和 eva 能 读取 和 写入, 群组 mis 和 hr 只能读取, 其它人不能 读取 和 写入。 我们只须多加两个规则便能达成:
setfacl -m group::r,user:eva:rw report.doc
[adam@www adam]$ getfacl report.doc
# file: report.doc
# owner: adam
# group: mis
user::rw-
user:eva:rw-
group::r--
group:hr:r--
mask::rw-
other::---
ACL 的种类
ACL 有两种, 分别为 『存取型ACL』 (Access ACL) 和 『预设型ACL』 (Default ACL)。 我们之前所介绍便是 存取型ACL, 可用于档案或目录, 它决定了该档案或目录本身的使用权限。
而预设型ACL 只可用于目录, 它决定了该目录下新建立的档案或目录的 ACL。
[adam@www adam]$ getfacl /home/adam
getfacl: Removing leading '/' from absolute path names
# file: home/adam
# owner: adam
# group: adam
user::rwx
group::---
other::---
要设定 预设型ACL, 同样使用 “setfacl”。 所不同的是, 在每个规则前加上 “default:”, 例如:
setfacl -m default:user::rw /home/adam
如果觉得指令太长的话我们可以使用简略字符:
长写 简写
user: u:
group: g:
other: o:
mask: m:
default: d:
例如, 要设定 /home/adam 的预设型ACL为, 使用者 adam 和 eva 能 读取 和 写入, 群组只能读取 :
setfacl -m d:u::rw,d:u:eva:rw,d:g::r,d
::- /home/adam
[adam@www adam]$ getfacl /home/adam
getfacl: Removing leading '/' from absolute path names
# file: home/adam
# owner: adam
# group: adam
user::rwx
group::---
other::---
default:user::rw-
default:user:eva:rw-
default:group::r--
default:mask::rw-
default
ther::---
建立新的档案并检视其 存取型ACL:
[adam@www adam]$ touch newfile
[adam@www adam]$ getfacl newfile
# file: newfile
# owner: adam
# group: mis
user::rw-
user:eva:rw-
group::r--
mask::rw-
other::---
回复
支持
反对
使用道具
举报
显身卡
tianfuming
tianfuming
当前离线
积分
63
IP卡
狗仔卡
发表于 2004-12-13 16:19:10
|
显示全部楼层
这个在FTP里可以实现,在vsftpd.conf里填加user_config_dir=/etc/vsftpd/config然后在里面建立以用户名命名的文件,分别加权限write_enable=NO anon_read_enable=yes(只读)
anon_upload_enable=NO(上传)
anon_mkdir_write_enable=NO(新建目录权限)
anon_other_write_enable=NO(删除文件权限)
可以根据需要打开
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
开源软件专题讨论
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表