mirror of
https://github.com/netblue30/firejail.git
synced 2026-05-15 14:16:14 -06:00
nvidia fix
This commit is contained in:
parent
1db14e970d
commit
40ed53c20b
4 changed files with 28 additions and 25 deletions
|
|
@ -457,8 +457,7 @@ char *expand_home(const char *path, const char* homedir);
|
|||
const char *gnu_basename(const char *path);
|
||||
uid_t pid_get_uid(pid_t pid);
|
||||
void invalid_filename(const char *fname);
|
||||
uid_t get_tty_gid(void);
|
||||
uid_t get_audio_gid(void);
|
||||
uid_t get_group_id(const char *group);
|
||||
int remove_directory(const char *path);
|
||||
void flush_stdin(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ void fs_private_dev(void){
|
|||
|
||||
|
||||
// mount /dev/pts
|
||||
gid_t ttygid = get_tty_gid();
|
||||
gid_t ttygid = get_group_id("tty");
|
||||
char *data;
|
||||
if (asprintf(&data, "newinstance,gid=%d,mode=620,ptmxmode=0666", (int) ttygid) == -1)
|
||||
errExit("asprintf");
|
||||
|
|
|
|||
|
|
@ -2555,16 +2555,31 @@ int main(int argc, char **argv) {
|
|||
ptr += strlen(ptr);
|
||||
|
||||
// add tty group
|
||||
gid_t ttygid = get_tty_gid();
|
||||
if (ttygid) {
|
||||
sprintf(ptr, "%d %d 1\n", ttygid, ttygid);
|
||||
gid_t g = get_group_id("tty");
|
||||
if (g) {
|
||||
sprintf(ptr, "%d %d 1\n", g, g);
|
||||
ptr += strlen(ptr);
|
||||
}
|
||||
|
||||
// add audio group
|
||||
gid_t audiogid = get_audio_gid();
|
||||
if (ttygid) {
|
||||
sprintf(ptr, "%d %d 1\n", audiogid, audiogid);
|
||||
g = get_group_id("audio");
|
||||
if (g) {
|
||||
sprintf(ptr, "%d %d 1\n", g, g);
|
||||
ptr += strlen(ptr);
|
||||
}
|
||||
|
||||
// add video group
|
||||
g = get_group_id("video");
|
||||
if (g) {
|
||||
sprintf(ptr, "%d %d 1\n", g, g);
|
||||
ptr += strlen(ptr);
|
||||
}
|
||||
|
||||
// add games group
|
||||
g = get_group_id("games");
|
||||
if (g) {
|
||||
sprintf(ptr, "%d %d 1\n", g, g);
|
||||
ptr += strlen(ptr);
|
||||
}
|
||||
|
||||
EUID_ROOT();
|
||||
|
|
|
|||
|
|
@ -649,25 +649,14 @@ void invalid_filename(const char *fname) {
|
|||
}
|
||||
|
||||
|
||||
uid_t get_tty_gid(void) {
|
||||
uid_t get_group_id(const char *group) {
|
||||
// find tty group id
|
||||
gid_t ttygid = 0;
|
||||
struct group *g = getgrnam("tty");
|
||||
gid_t gid = 0;
|
||||
struct group *g = getgrnam(group);
|
||||
if (g)
|
||||
ttygid = g->gr_gid;
|
||||
gid = g->gr_gid;
|
||||
|
||||
return ttygid;
|
||||
}
|
||||
|
||||
|
||||
uid_t get_audio_gid(void) {
|
||||
// find tty group id
|
||||
gid_t audiogid = 0;
|
||||
struct group *g = getgrnam("audio");
|
||||
if (g)
|
||||
audiogid = g->gr_gid;
|
||||
|
||||
return audiogid;
|
||||
return gid;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue