linux中通过受限bash创建只读用户例子

受限bash

如果 bash 以 rbash 为程序名启动或者命令行参数有 -r 选项,则启动的这个 shell 会在某些功能上受限制.具体表现为如下操作都不能做:
通过 cd 来改变工作目录
设置或取消环境变量: SHELL, PATH, ENV, BASH_ENV
命令名中不能包含目录分隔符 ‘/’
包含有 ‘/’ 的文件名作为内置命令 ‘.’ 的参数
hash 内置命令有 -p 选项时的文件名参数包含 '/'
在启动时通过 shell 环境导入函数定义
在启动时通过 shell 环境解析 SHELLOPTS 的值
使用 >,>|, <>, >&, &>, >> 等重定向操作符
使用 exec 内置命令
通过 enable 内置命令的 -f 和 -d 选项增加或删除内置命令
使用 enable 内置命令来禁用或启用 shell 内置命令
执行 command 内置命令时加上 -p 选项
通过 set +r 或 set +o restricted 关闭受限模式
现在通过受限bash来创建只读用户。

步骤

# ln -s /bin/bash  /bin/rbash
# useradd -s /bin/rbash rttlsa
# passwd rttlsa
# mkdir /home/rttlsa/bin
# chown root. /home/rttlsa/.bash_profile
# chmod 755 /home/rttlsa/.bash_profile
# vi /home/rttlsa/.bash_profile
# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=$HOME/bin
 
export PATH
 
# ln -s /bin/cat  /home/rttlsa/bin/cat  将允许执行的命令链接到$HOME/bin目录
如此即可创建只允许查看日志的只读用户

时间: 2024-10-25 15:05:36

linux中通过受限bash创建只读用户例子的相关文章

在 Linux 中无人看守批量创建用户的方法

介绍 作为一名 Linux 系统管理员,你有时必须向系统添加新的用户帐户.为此,经常使用adduser 命令.当涉及到多个用户的创建时,adduser 命令可能会变得相当无聊和耗时.这篇短文旨在为 Linux 系统管理员提供一种简单而无人值守的方式来批量创建用户.newusers 命令将帮助你通过从预填文件中获取信息来创建多个用户. 要求 访问 Linux 计算机的特权. 约定 # - 给定命令需要以 root 用户权限运行或者使用 sudo 命令 $ - 给定命令以常规权限用户运行 如何进行

SQL Server 2008 数据库中创建只读用户的方法_mssql2008

在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用. SQL Server 2008 Microsoft SQLServer Management Studio 1.首先打开[Microsoft SQLServer Management Studio],用管理员账户登录.这里我选的服务器是[local],账户是[windows身份验证],如果是连接远程的服务器,输入远程服务器地

Linux中grep命令的12个实践例子

你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu $ sudo yum install grep #RH

Linux中管理Memcached的Service脚本的例子

Memcached需要libevent支持,所以需要先检查libevent是否已经安装. 下面是Memcached的安装过程: # tar zvxf memcached-1.4.9.tar.gz # cd memcached-1.4.9 # ./configure --prefix=/usr/local/memcached # make # make install 启动Memcached: # /usr/local/memcached/bin/memcached -d -m 128 -l 12

linux中文件操作命令(创建、删除、查看、权限设置)

创建文件(touch)命令 Linux 创建文件命令主要用到的是 touch 命令,touch 命令可用来修改文件的访问时间,修改时间,如果没有指定时间,则默认为当前时间,如果指定的文件不存在,则 touch 命令将创建该文件. 命令格式: touch [-acfm] [-r file(参照文件)] [-t decimtime(时间值)] [-d time(时间值)] [--time={atime,access,use,mtime,modify}] [--date=time] [--refere

Linux中高效编写Bash脚本的10个技巧

Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 10 个写出高效可靠的 bash 脚本的实用技巧,它们包括: 1. 脚本中多写注释 这是不仅可应用于 shell 脚本程序中,也可用在其他所有类型的编程中的一种推荐做法.在脚本中作注释能帮你或别人翻阅你的脚本时了解脚本的不同部分所做的工作. 对于刚入门的人来说,注释用 # 号来定义. # TecM

关于LINUX中的权限位S(设置用户ID)(有效用户ID)(实际用户ID)

getuid() 实际用户ID为 执行程序的实际用户ID geteuid() 有效用户ID与设置用户ID有关,及权限中的S位 如果权限为rws 那么s位代表其他用户执行程序时改变为主用户权限.不安全 如:   8 #include<stdio.h>   9 #include<stdlib.h>  10 #include <unistd.h>  11 #include <sys/types.h>  12 #include <sys/stat.h>

linux中空格导致nfs客户端只读

 今天公司同事要求我帮忙挂载下nfs,过去两三下搞定之后,同事又过来说nfs客户端没有写的权限,在nfs目录里操作什么都是只读,我心里想不对啊,我整了几台都没有这样的问题啊,登录上去一看还真是nfs客户端只读.马上检查了nfs服务端的共享目录是否有权限,都给到777了,客户端这边还是只读,又马上重启动了nfs服务器的nfs服务,还是不行,最后检查了下nfs服务的配置文件,才发现ip跟(rw,sync,no_root_squash)之间有空格,去掉空格,重新启动nfs服务,客户端那边不再出现只读现

linux中tomcat记录负载均衡真实用户IP地址

Tomcat有nginx或其他软件做负载均衡,tomcat需要记录真实客户端地址,需要在Host或Context下定义如下内容:  代码如下 复制代码 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                 prefix="localhost_access_log." suffix=".txt&quo