TITANTOOLS(1)

πŸ’– TITANTOOLS(1) β€” General Commands Manual πŸ’–

okay bestie, so this page lives in section 1 of the manual (the general commands one) and it's filed under the name TITANTOOLS, but the actual thing it's describing? yeah, it's noshell. iconic naming chaos, we love her. anyway. sit down, grab a strawberry, let's talk about the shell that exists purely to say "no ❀️" πŸ’…


✨ NAME ✨

noshell β€” the shell for administrative users who should literally never log in πŸš«πŸ‘‘


🌸 DESCRIPTION 🌸

so noshell is a shell you can assign to system users that need to be active (like, they exist, they own files, they're doing their little jobs) but should never ever log in to the system. think of it as a bouncer at the club door 🫢. and not only does it block them β€” it also helps you monitor attempts to get into disabled accounts, and it logs all of that into syslog. it's giving surveillance but make it cute.

here's the tea: if a user tries to connect to the system through an administrative user that has a valid password and uses noshell as their shell, then:

  • the use of noshell gets logged πŸ“
  • the connection gets terminated πŸ’€
  • the user is left unable to gain access to the host. no cap.

after connecting, the login program might display the timestamp of the last login. for example, in a remote connection:

hostileuser@hostile_host% ssh -l adminuser remote_host

adminuser@remote_host's password: *******

(System's /etc/motd)

Last login: Sat Nov 22 23:30:41 2003 from localhost

Connection to remote_host closed.

see how fast that closed? yeah. bye πŸ‘‹

if the user is denied access, noshell will send a message to syslog using the LOG_AUTH facility. important though: it does not provide any indication of whether this connection attempt was local or remote β€” that info has to be retrieved from other logs. so don't come for noshell asking questions it literally cannot answer bestie.

in the example above, the following would get recorded in /var/log/authlog:

Nov 22 23:30:41 remote_host sshd[9950]: Accepted password for
adminuser from hostile_host port 44422 ssh2

Nov 22 23:30:41 remote_host ssh(pam_unix)[9952]: session opened
for user adminuser by (uid=1)

Nov 22 23:30:41 remote_host noshell[9953]: Noshell warning: user
adminuser login from a disabled shell

Nov 22 23:30:41 remote_host ssh(pam_unix)[9952]: session closed
for user adminuser

the way it just sits in there, quietly snitching. obsessed πŸŽ€

in Debian, noshell is an alternative to the nologin shell, and the latter is provided in the login package. the main difference between them? noshell will not provide any information about why the access has been denied. mysterious. aloof. main character energy πŸ’…


✨ OPTIONS ✨

okay so this program does not use any option. that's it. that's the whole section. no flags, no --help, nothing. she simply does not take requests πŸ¦‹


🌈 SEE ALSO 🌈


πŸ‘‘ AUTHOR πŸ‘‘

this manual page was written by Javier Fernandez-Sanguino PeΓ±a <jfs@debian.org> for the Debian system (but may be used by others). permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation. fr fr, go forth and remix.

on Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL. πŸ“š


okay that's the whole page bestie, go protect your system users and stay unbothered πŸ«ΆπŸ’–

and that's a wrap from TITANTOOLS(1) in the General Commands Manual β€” same name up top, same name at the bottom, we're consistent like that ⭐✨ no date given on this one, just the manual name front and back, and honestly? that's iconic. bye babe πŸ’…πŸŽ€