免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: biary
打印 上一主题 下一主题

请教:如何限制用户登陆后可访问的目录? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2005-07-18 16:20 |只看该作者

请教:如何限制用户登陆后可访问的目录?

谢谢网中人的解答。我用的是solaris,里面的chroot好像使命令相对于新的root目录来执行。但是没查到chroot环境的概念,是linux的概念吗?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
22 [报告]
发表于 2005-07-18 17:55 |只看该作者

请教:如何限制用户登陆后可访问的目录?

哦... chroot 環境, 其實就是一個 root 環境.
也就是你要設技出 user 要執行某些任務時所需的基本文件系統,
含 /etc /bin /sbin /lib 等等...
這沒有特定的要求, 一切要看實際需求...

solaris 我不熟, 若做過 floppy linux 或 embedded 的話, 應該會很有概念的.
此外, solaris 是否用 PAM, 且, 有否 chroot 的 pam module 我也不清楚.
在 linux 上, 除了 PAM chroot , 還可用 UML 來做.

论坛徽章:
0
23 [报告]
发表于 2005-07-19 10:22 |只看该作者

请教:如何限制用户登陆后可访问的目录?

原帖由 "網中人" 发表:
哦... chroot 環境, 其實就是一個 root 環境.
也就是你要設技出 user 要執行某些任務時所需的基本文件系統,
含 /etc /bin /sbin /lib 等等...
這沒有特定的要求, 一切要看實際需求...

solaris 我不熟, 若做過 ..........


哦,原来是这样。到网上查了查,大概有了点概念。不过solaris中目前的PAM据我所知好像没有与chroot相关联的module,只查到如下的四个module:
authentication service module
           Provides functionality to authenticate a user and  set
           up user credentials.

  account management module
           Provides functionality to  determine  if  the  current
           user's  account  is  valid. This includes checking for
           password and account expiration, as well as  verifying
           access hour restrictions.

  session management module
           Provides functionality to set up and  terminate  login
           sessions.

  password management module
           Provides functionality to change a user's  authentica-
           tion token or password.
供大家参考。

论坛徽章:
0
24 [报告]
发表于 2005-07-19 11:32 |只看该作者

请教:如何限制用户登陆后可访问的目录?

顶下

论坛徽章:
0
25 [报告]
发表于 2005-07-19 11:55 |只看该作者

请教:如何限制用户登陆后可访问的目录?

受到PAM的启发,做了些尝试,但没有成功.
我用如下脚本替换了/usr/sbin/in.telnetd:
#!/bin/bash
read -p "login: " USER
if [ "x$USER" = "xgavin" ]
then
        /usr/sbin/chroot /home/gavin login $* $USER
else
        login $* $USER
fi
同时在/home/gavin目录下,复制了login命令,和一些所需库文件:
ld.so.1          libcmd.so.1      libnsl.so.1      libsecdb.so.1
libbsm.so.1      libdevinfo.so.1  libnvpair.so.1   libsocket.so.1
libc.so.1        libmd5.so.1      libpam.so.1

但是,telnet后就停在如下位置,不知道是什么原因
# telnet flavor
Trying 135.252.38.143...
Connected to flavor.
Escape character is '^]'.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
26 [报告]
发表于 2005-07-19 13:08 |只看该作者

请教:如何限制用户登陆后可访问的目录?

記得, chroot 是要用 root 身份才能跑的.
或許試試:

1) 修改 /etc/sudoers, 增加:
gavin localhost=NOPASSWD: /usr/sbin/chroot /home/gavin /bin/su - gavin

2) 建一個 /etc/chroot.sh , 並加上 x permission:
#!/bin/bash
sudo /usr/sbin/chroot /home/gavin /bin/su - gavin

3) 修改 gavin 的 login shell:
# usermod -s /etc/chroot.sh gavin

若不能用 chroot.sh 來跑, 那就將 login shell 換成 sudo 那一整行命令吧.

不過, 我沒試過, 你先跑跑看?

论坛徽章:
0
27 [报告]
发表于 2005-07-19 14:38 |只看该作者

请教:如何限制用户登陆后可访问的目录?

很奇怪,按照所说的三步做完后,执行结果如下:

# grep gavin /etc/passwd
gavin:101:5000::/home/gavin:/etc/chroot.sh
# su - gavin
# id
uid=0(root) gid=0(root)
# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
login: gavin
Password:
Last login: Tue Jul 19 14:29:50 from rhythm
Connection to localhost closed by foreign host.

为什么没有su过去呢?我已经把su复制到/home/gavin下了

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
28 [报告]
发表于 2005-07-19 17:08 |只看该作者

请教:如何限制用户登陆后可访问的目录?

你去查一下 log 吧. 因為我也沒這樣弄過...

论坛徽章:
0
29 [报告]
发表于 2005-07-20 14:26 |只看该作者

请教:如何限制用户登陆后可访问的目录?

谢谢网中人的帮助。我再试试看。另外同事提供了些文档,贴出来供大家参考:

用chroot()限制用户
      如果的确想限制一个用户,可用chroot()子程序为用户建立一个完全隔离
  的环境,改变了进程对根目录的概念,因此可用于将一个用户封在整个文件系
  统的某一层目录结构中,使用户无法用cd命令转出该层目录结构,不能存取文
  件系统中其余部分的任何文件.这种限制方式比加限制的shell好得多.用户使
  用的命令应由系统管理员在新的root目录中建立一个bin目录,并建立用户可
  用命令的链到系统的/bin目录中相应命令文件上(若在不同的文件系统则应拷
  贝命令文件).
      还应建立新的passwd文件,保留系统登录户头(为了使ls -l正确地报告与
  受限制的子文件系统中的文件相关的正确登录名)和用户帐户,但系统帐户的
  口令改为NOLOGIN以使受限制的用户不能取得系统登录的真实口令,使"破密"
  程序的任何企图成为泡影.
      utmp文件是who所需要的,该文件含有系统中已登录用户的列表.
      新的/etc/profile文件也不是建链文件,以便受限制的用户可以执行不同
  的启动命令.
      /dev目录中的终端设备文件被链接到新的/dev目录下,因为命令who产生
  输出时要查看这些文件.
      在系统V及以后的UNIX版本中,login命令有chroot()的功能.如果口令文
  件中用户入口项的登录shell域(最后一个域)是*,login将调用chroot()把用
  户的根目录设置成为口令文件中用户入口项登录目录域指定的目录.然后再调
  用exec()执行login,新的login将在新子系统文件中执行该用户的登录.
      chroot()并不是把root封锁在一个子文件系统中,所以给受限制用户用的
  命令时应加以考虑,具有root的SUID许可的程序可能会给予用户root的能力.
  应当将这种可能减低到最小程度,交给用户使用的命令应当取自清除了SUID陷
  井的系统命令.链接文件可减少磁盘占用区,但要记住,当与敌对用户打交道时
  链接到chroot目录结构(尤其是命令)的系统文件是很危险的.
      如果建立一个像这样的限制环境,应确保对安装到新的/bin的每条命令都
  做过测试,有些程序可能有系统管理员未曾想到的出乎意料的执行结果.为了
  使这些命令能运行,还得在加限制的子文件系统中加服务目录或文件如:/tmp,
  /etc/termcap,/usr/lib/terminfo,/dev/mem,/dev/kmem,/dev/swap,用户所
  登录的/dev中的tty文件以及/unix.
      有些程序在子文件系统中运行时不会很好,如果将假脱机程序和网络命令
  拷贝到加限制的子文件系统中,并放在为两条命令专建的目录层结构下,它们
  可能也运行不了.

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-03 17:23:07综合交流区版块每日发帖之星
日期:2015-08-19 06:20:00综合交流区版块每日发帖之星
日期:2015-09-15 06:20:00
30 [报告]
发表于 2005-07-21 21:47 |只看该作者

请教:如何限制用户登陆后可访问的目录?

我知道用NTFS格式很容易实限的~~

还可以用户自行加密呢~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP