Merge pull request #201 from mkj/test-pty-gid

Allow users's own gid in pty permission check
This commit is contained in:
Matt Johnston 2022-12-12 22:34:06 +08:00 committed by GitHub
commit 6fa49f98c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -380,7 +380,9 @@ pty_setowner(struct passwd *pw, const char *tty_name)
tty_name, strerror(errno)); tty_name, strerror(errno));
} }
if (st.st_uid != pw->pw_uid || st.st_gid != gid) { /* Allow either "tty" gid or user's own gid. On Linux with openpty()
* this varies depending on the devpts mount options */
if (st.st_uid != pw->pw_uid || !(st.st_gid == gid || st.st_gid == pw->pw_gid)) {
if (chown(tty_name, pw->pw_uid, gid) < 0) { if (chown(tty_name, pw->pw_uid, gid) < 0) {
if (errno == EROFS && if (errno == EROFS &&
(st.st_uid == pw->pw_uid || st.st_uid == 0)) { (st.st_uid == pw->pw_uid || st.st_uid == 0)) {