CentOS / Redhat:通过LDAP / sssdlogin时的全系统别名

我在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 6.5
  • Server / LDAP:Debian 7上的OpenLDAP / slapd 2.4.31-1 + nmu2

在我的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。