centos限制用户使用部分命令
参考网:https://access.redhat.com/solutions/65822#
环境
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
问题
- Need to restrict the normal users to run only limited set of commands assigned to him/her and all other commands for which normal user have permission to execute by-default, shall not be executed.
E.g: user XYZ can run only gzip and gunzip commands.
决议
Disclaimer : This is just a hack, not recommended for Actual Production Use
- The normal user has been given permission to execute some commands which are available in /bin/and/usr/local/bin/, So to remove those permissions and to restrict the user to run only particular set of commands, following steps shall be useful.
1. Create the restricted shell.
# cp /bin/bash /bin/rbash
2. Modify the target user for the shell as restricted shell
While creating user:
# useradd -s /bin/rbash localuser
For existing user:
# usermod -s /bin/rbash localuser
For more detailed information on this, please check the KBase Article 8349
Then the user localuser is chrooted and can't access the links outside his home directory /home/localuser
3. Create a directory under /home/localuser/, e.g. programs
# mkdir /home/localuser/programs
4. Now if you check, the user localuser can access all commands which he/she has allowed to execute. These commands are taken from the environmental PATH variable which is set in /home/localuser/.bash_profile. Modify it as follows.
# cat /home/localuser/.bash_profile
# .bash_profile  
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$HOME/programs
export PATH
Here the PATH variable is set to ~/programs directory, as /usr/local/bin is binded to /home/username/bin and /bin is binded to /home/username/bin so replacing that.
5. Now after logging with the username localuser, user cant run a simple command too. The output will be like this,
[localuser@example ~]$ ls
-rbash: ls: command not found
[localuser@example ~]$ less file1
-rbash: less: command not found
[localuser@example ~]$ clear
-rbash: clear: command not found
[localuser@example ~]$ date
-rbash: date: command not found
[localuser@example ~]$ ping redhat.com
-rbash: ping: command not found
6. Now create the softlinks of commands which are required for user localuser to execute in the directory /home/localuser/programs
# ln -s /bin/date /home/localuser/programs/
# ln -s /bin/ls /home/localuser/programs/
# ll /home/localuser/programs/
total 8
lrwxrwxrwx 1 root root 9 Oct 17 15:53 date -> /bin/date
lrwxrwxrwx 1 root root 7 Oct 17 15:43 ls -> /bin/ls
Here examples of date and ls commands has been taken
7. Again login with user localuser and try to execute the commands.
[localuser@example ~]$ date
Mon Oct 17 15:55:45 IST 2011
[localuser@example ~]$ ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 programs
[localuser@example ~]$ clear
-rbash: clear: command not found
8. One more step can be added to restrict the user for making any modifications in their .bash_profile , as users can change it.
Run the following command to make the user localuser's .bash_profile file as immutable so that root/localuser can't modify it until root removes immutable permission from it.
# chattr +i /home/localuser/.bash_profile
To remove immutable tag,
# chattr -i /home/localuser/.bash_profile
Make file .bash_profile as immutable so that user localuser can't change the environmental paths.
centos限制用户使用部分命令的更多相关文章
- centos的用户管理相关命令所在的包
		用户管理命令是指:useradd userdel groupadd groupdel 这些 这些命令出自一个叫 shadow-utils 的包. 对于配置文件 /etc/shadow ,则来自一个叫 ... 
- Linux实战案例(4)CentOS清除用户登录记录和命令历史方法
		CentOS清除用户登录记录和命令历史方法 清除登陆系统成功的记录[root@localhost root]# echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等信 ... 
- CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)
		关于 Nginx (发音 “engine x”)这是一款免费.开源.高效的 HTTP 服务器,Nginx是以稳定著称,丰富的功能,结构简单,低资源消耗.本教程演示如何在CentOS 6.5服务器(适用 ... 
- CentOS 7 用户账户配置
		说明: 1.这篇博文记录的是CentOS 7 用户账户的配置,包括添加用户.添加用户组.删除用户.删除用户组等.其中包括分析用户的配置文件.目录以及对安全的思考. 2.用户配置方面CentOS 7与以 ... 
- centos单用户模式:修改ROOT密码和grub加密
		centos单用户模式:修改ROOT密码和grub加密 CentOSLinux网络应用配置管理应用服务器 Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 ... 
- CentOS修改用户密码方法
		CentOS修改用户密码方法 CentOS修改用户密码方法 1. 普通用户 a. 获取超级用户root权限 命令:su或者su -或者su - root b. passwd 用户名 2. 超级用户 a ... 
- Centos硬盘IO性能检测命令iostat[转]
		Centos硬盘IO性能检测命令iostat[转] 在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都 ... 
- centos的用户、组权限、添加删除用户等操作的详细操作命令
		1.Linux操作系统是多用户多任务操作系统,包括用户账户和组账户两种 细分用户账户(普通用户账户,超级用户账户)除了用户账户以为还 有组账户所谓组账户就是用户账户的集合,centos组中有两种类型, ... 
- CentOS 修改用户密码
		CentOS 修改用户密码 1.普通用户 ①获取超级用户root权限 命令:su 或者 su- 或者 su -root ②输入命令: passwd 用户名 ③输入新密码 2.超级用户 ①打开syste ... 
随机推荐
- elasticsearch 口水篇(9)Facet
			FACET 1)Terms Facet { "query" : { "match_all" : { } }, "facets" : { &q ... 
- Paramiko&堡垒机
			Paramiko paramiko模块,基于SSH用于连接远程服务器并执行相关操作. 一.安装 pip install paramiko 二.使用 SSHClient 用于连接远程服务器并执行基本命令 ... 
- 三星GT-N8010刷机教程
			本刷机教程只针对三星GT-N8010机器(以下简称GT-N8010),以下操作本人已在GT-N8010机器上亲测,且都成功,其它机器没有测试不能保证成功. 刷机有风险,请谨慎使用!请先备份资料和信息. ... 
- es6数组的方法
			1.复习的函数 函数是由关键字function声明的,他是一个引用数据类型,是Function的实例,在调用的时候会开辟一个私有空间 2.函数的成员 arguments:null (是实参构成的数组 ... 
- python直接下载图片到内存
			1. 使用requests(推荐) from PIL import Image import requests Image.open(requests.get(url, stream=True).ra ... 
- android 5.0安装应用冲突问题
			公司二款产品无法同时安装 为了查看原因 用adb命令安装((adb 命令要配置环境环境,path 盘符+adt-bundle-windows-x86-20140702\sdk\platform-too ... 
- [UE4]Overlay容器:图片随着其他容器(比如Vertical Box)大小而同步改变
- vue 创建单文件组件 注册组件  以及组件的使用
			<template> <div id="app"> <v-home></v-home> <hr > <br> ... 
- RAC集群安装校验输出信息
			RAC集群安装校验输出信息 作者:Eric 微信:loveoracle11g [grid@rac-node1 grid]$ [grid@rac-node1 grid]$ ./runcluvfy.sh ... 
- tf.nn.embedding_lookup
			tf.nn.embedding_lookup(params, ids, partition_strategy=’mod’, name=None, validate_indices=True, max_ ... 
