linux 有两种登录shell:login和non-login:
login shell:登录shell时需要完整的登录流程,称为 login shell。何为完整:输入用户名和密码。例如:走tty1-tty6控制终端,或走ssh等伪终端远程登入。
non-login shell:登入shell时不需要输入帐号信息。例如在X11下,打开伪终端,或者在shell下,进入shell子进程。
这两种登入shell的区别是:在登入shell时,读取的配置文件不同。
login shell(bash)在登入时,会读取的配置文件:
1. /etc/profile
2. ~/.bash_profile 或~/.bash_login 或 ~/.profile
3. ~/.bashrc
第二步之所以有三个文件,是因为不同的shell有可能命名不同,只会按顺序读取其中的一个。
non-login shell(bash)在登入时,只会读取 ~/.bashrc
=======================
其实在Linux中还有一种用户登录,它不读任何配置文件,不属于login shell 也不属于 non-login shell。
它就是
sudo -u
sudo -u redis ll
sudo -u redis cd
都是不允许的。
原因很简单
sudo 是一种程序,在linux中输入sodu就是调用这个程序提升权限,
shell是一个命令解析器。
sudo只能执行系统自带命令,而不能执行其他程序所带的命令。如ll、cd等均是shell所带的。
相关推荐
readonly命令 – 标记shell变量或函数为只读vipw命令 – 编辑某些配置文件dpkg-split命令 – 分割软件包resize命令 – 设置终端机视窗的大小source命令 – 在当前Shell环境中从指定文件读取和执行命令hping3命令 ...
此外,我们还需要指定该用户不允许通过shell登录系统,这是通过使用`sbin/nologin`作为默认shell来实现的: ```bash useradd -g ftpusers -d /var/ftp/ftp1 -s /sbin/nologin ftp1 ``` - `-g ftpusers`指定了用户...
2. **仅root用户可登录**:当普通用户尝试登录时收到“failed running login shell”或“system unavailable”的错误,这可能是因为用户的登录shell被禁用或损坏。检查用户的shell设置,如在/etc/passwd文件中查看每...
本文主要涉及Linux下用户和组的管理,包括修改用户信息、更改用户Shell类型、以及如何验证用户和组文件的一致性。 首先,我们可以使用`chfn`命令来修改用户的信息,如全名、办公室地址和电话等。这个工具方便管理员...
将`nobody`和`ftp`的登录SHELL设置为`/sbin/nologin`,以防止他们登录到系统。 ```shell # usermod -s /sbin/nologin nobody # usermod -s /sbin/nologin ftp ``` ##### 3.2 安装配置文件及可执行程序 安装`...
useradd -d /home/ftpsite -s /sbin/nologin virtual chmod 700 /home/ftpsite ``` #### 五、vsftpd配置文件调整 1. **编辑`/etc/vsftpd/vsftpd.conf`:** - 关闭匿名登录。 - 启用本地用户登录。 - 设置...
键切换到特定的TTY并输入信息时,getty会读取输入并启动login程序进行身份验证。 远程连接如SSH,系统启动时会运行sshd服务,监听指定端口等待远程用户的TCP连接。SSH客户端与服务器建立连接后,通过SSH隧道进行...
首先,修改`/etc/passwd`文件,确保用户`mytest`的登录Shell被设置为`/sbin/nologin`,这意味着用户无法获得一个交互式的shell环境: ```bash [root@localhost etc]# vi /etc/passwd ``` 查找`mytest`行,并将其...
它的基本格式是`useradd [options] LOGIN`。例如,`useradd john`会创建一个名为john的新用户。一些重要的选项包括: - `-u UID`:指定用户ID,确保其唯一。 - `-g GID`:设置用户的基本组,可以是组名或GID。 - `-c...
Linux系统采用命令行界面,用户在登录时需输入用户名(Login)和密码(password),其中Backspace键用于删除输入错误的信息,值得注意的是,在某些系统中,Backspace可能与Delete键功能不同。登录成功后,系统会显示...
1. **修改登录权限**: 编辑`/etc/passwd`文件,将用户的登录shell从`/bin/bash`更改为`/sbin/nologin`,从而禁止该用户登录。 2. **禁止所有用户登录**: 创建一个空文件`/etc/nologin`,使得除了root之外的所有用户...
- 关机前系统会创建 `/etc/nologin` 文件以阻止新用户登录。 #### 二、常用操作 **1. Shell** - **命令格式**: `ps` - **功能**: 查看当前运行的进程,确定当前shell。 - **说明**: - Shell是用户与Linux交互的...
2、它们是用来完成特定任务的,比如nobody和ftp等,我们访问LinuxSir.Org的网页程序时,官网的服务器就是让客户以’nobody’身份登录的(相当于Windows系统中的匿名帐户); 我们匿名访问ftp时,会用到用户ftp或nobody...
- 通过编辑`/etc/passwd`文件,将某些用户的shell更改为非交互式,如`/sbin/nologin`,防止他们登录。 - 创建`/etc/nologin`文件,阻止所有非root用户登录。 4. **口令策略**: - 设置口令最大使用天数(`PASS_...
- 创建一个包含用户名和密码的文本文件,如`/etc/vsftpd/login.txt`,然后使用`db_load`工具将其转化为哈希数据库,如`db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db`。 5. **设置PAM...
首先,创建一个名为`virftp`的虚拟用户,并设置其不允许登录shell: ```bash useradd virftp -s /sbin/nologin ``` 接着,我们需要为虚拟账号创建一个关联的文件,存储用户名和密码,例如`/etc/vsftpd/vsftpd_...