Maison >Tutoriel système >Linux >Analyse du code pour utiliser bash restreint pour créer un compte avec les autorisations spécifiées sous Linux
Cet article étudie principalement le contenu associé à la création de comptes avec des autorisations spécifiées via bash restreint sous Linux. L'introduction spécifique est la suivante.
Dans le cadre de l'exploitation et de la maintenance quotidiennes d'une entreprise, parfois afin de coopérer à la résolution de problèmes, il est nécessaire d'ouvrir des comptes système pour le personnel non opérationnel et de maintenance afin d'interroger les journaux ou les codes. Habituellement, dans un but de sécurité du système ou pour éviter une utilisation abusive inutile, les autorisations de compte seront réduites au minimum. Ce qui suit est une introduction à l'enregistrement de l'opération de création d'un compte avec des autorisations spécifiées via bash restreint sous Linux :
[root@mq-server ~]# ln -s /bin/bash/bin/rbash [root@mq-server ~]# useradd -s /bin/rbash wangshibo [root@mq-server ~]# passwd wangshibo [root@mq-server ~]# mkdir /home/wangshibo/bin [root@mq-server ~]# chown root. /home/wangshibo/.bash_profile [root@mq-server ~]# chmod 755 /home/wangshibo/.bash_profile [root@mq-server ~]# vim /home/wangshibo/.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<br data-filtered="filtered"> [root@mq-server ~]# ln -s /bin/cat /home/wangshibo/bin/cat [root@mq-server ~]# ll /home/wangshibo/ total 4 drwxr-xr-x 2 root root 4096 Nov 25 23:38 bin [root@mq-server ~]# ll /home/wangshibo/bin/ total 0 lrwxrwxrwx 1 root root 8 Nov 25 23:12 cat -> /bin/cat
Après les paramètres ci-dessus, vous pouvez constater que les autorisations de fichiers dans le répertoire personnel de l'utilisateur wangshibo créé sont root.root. Seule l'autorisation cat de l'utilisateur wangshibo est définie ci-dessus, et seul cat peut afficher les fichiers dans le répertoire personnel de l'utilisateur wangshibo . /home/wangshibo . Sauf la commande cat. Aucune autre commande ne peut être exécutée !
[wangshibo@mq-server ~]$ cat /var/log/messages cat: /var/log/messages: Permission denied [wangshibo@mq-server ~]$ ls -rbash: /home/wangshibo/bin/ls: No such file or directory [wangshibo@mq-server ~]$ touch test -rbash: /home/wangshibo/bin/touch: No such file or directory
Si vous souhaitez avoir les droits d'exécution d'autres commandes dans son répertoire personnel, vous devez ajouter les liens symboliques de ces commandes au répertoire /home/wangshibo/bin (vous pouvez afficher le chemin complet de la commande binaire via la commande which)
[root@mq-server ~]# ln -s /bin/ls /home/wangshibo/bin [root@mq-server ~]# ln -s /bin/touch /home/wangshibo/bin [root@mq-server ~]# ln -s /bin/mkdir /home/wangshibo/bin [root@mq-server ~]# ln -s /usr/bin/vim /home/wangshibo/bin/ [root@mq-server ~]# ll /home/wangshibo/bin/ total 0 lrwxrwxrwx 1 root root8 Nov 25 23:12 cat -> /bin/cat lrwxrwxrwx 1 root root7 Nov 25 23:44 ls -> /bin/ls lrwxrwxrwx 1 root root 10 Nov 25 23:45 mkdir -> /bin/mkdir lrwxrwxrwx 1 root root 10 Nov 25 23:44 touch -> /bin/touch lrwxrwxrwx 1 root root 12 Nov 25 23:45 vim -> /usr/bin/vim
De cette façon, l'utilisateur wangshibo aura les droits d'exécution des commandes ajoutées ci-dessus
[root@mq-server ~]# su - wangshibo [wangshibo@mq-server ~]$ ls bin [wangshibo@mq-server ~]$ touch test [wangshibo@mq-server ~]$ mkdir ops [wangshibo@mq-server ~]$ vim test [wangshibo@mq-server ~]$ cat test dsfdsafsadf [wangshibo@mq-server ~]$ rm -f test -rbash: rm: command not found [wangshibo@mq-server ~]$ ls /usr/ binetcgamesincludeliblib64libexeclocalsbinsharesrctmp [wangshibo@mq-server ~]$ cat /var/log/messages cat: /var/log/messages: Permission denied
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!