我在Centos支持论坛上问过这个问题,但是我们没有find解决scheme( https://www.centos.org/forums/viewtopic.php?f=13&t=46101#p196728 )
当通过LDAP / sssdlogin时,我们没有find一种方法来为使用ssh和graphics窗口pipe理器login时激活的所有用户设置系统别名。
/etc/bashrc并将别名添加到底部根本没有成功。 既不使用SSH也没有graphicslogin。 /etc/profile并添加别名在使用ssh时只能取得成功 我知道编辑这两个文件是一个坏主意。 如果有人在/etc/profile.d/*加载scipt的解决scheme
环境:
在我的CentOS盒子里,加载/etc/bashrc的原因是因为a)我的shell是bash和b)我个人的~/.bashrc源文件/ etc / bashrc。
在设置主目录时用户获取的.bashrc是否包含/ etc / bashrc,并且/ bin / bash是LDAP中的默认shell?
这可能是你想要修改的variables/别名也在用户主目录中的.bashrc或.bash_profile文件中设置,否定所有尝试设置系统范围的默认值/覆盖?
这导致了第二个问题:如何创build主目录? 例如,在首次login时使用pam_mkhomedir的客户端,还是在Debian服务器上集中创build的主目录,例如通过NFS导出? 在设置主目录时从/ etc / skel复制的Debian默认〜/ .bashrc可能与/ etc / skel中的CentOS模板不同. /etc/bashrc . /etc/bashrc 。
编辑回应Noxx的评论如下:
根据bash手册页,bash加载的唯一全局文件是: /etc/profile 系统范围的初始化文件,为loginshell执行 。
这符合你的观察,使用sshlogin时所做的更改会有效果。
那个默认有一个recursion地加载/etc/profile.d/*.sh文件的部分,这个文件应该是带有别名等的自定义文件的放置位置。
我认为(但没有办法现在testing)graphicslogin不会启动一个loginshell只有一个窗口pipe理器,它可能是你进入例如一个xterm窗口的bash shell虽然交互式而不是loginshell。
同样来自手册页: 当一个不是loginshell的交互式shell被启动时,如果该文件存在,bash将读取并执行〜/ .bashrc中的命令。 没有其他/全局configuration文件被加载。
RHEL / CentOS通过在个人~/.bashrc / etc / bashrc来解决这个问题,并使交互式shell与loginshell相似
在设置用户帐户时,最好的做法可能是部署这样的.bashrc。